integer knapsack problem