added the knapsack problem