added knapsack solution