added knapsack problem