def knapsack(weight, value, W):
n = len(weight)
dp = [[0] * (W+1) for _ in range(n+1)]
for i in range(1, n+1):
for j in range(1, W+1):
if weight[i-1] <= j:
dp[i][j] = max(dp[i-1][j], dp[i-1][j-weight[i-1]] + value[i-1])
else:
dp[i][j] = dp[i-1][j]
return dp[n][W]
weight = [2, 3, 4, 5]
value = [3, 4, 5, 6]
W = 8
max_value = knapsack(weight, value, W)
print("Maximum value:", max_value)