Knapsack Dynamic Programming Complexity