Intro to the knapsack problem