One-level reformulation of the bi-level Knapsack problem using dynamic programming