def fn(arr, k):
n=len(arr)
dp=[[0]*(k+1) for _ in range(n+1)]
for i in range(1, n + 1):
for j in range(1, k + 1):
dp[i][j]=dp[i-1][j]
items = 1
while items <=j:
dp[i][j]=max(dp[i][j],arr[i-1][items-1]+dp[i-1][j-items])
items+=1
return dp[n][k]
ZGVmIGZuKGFyciwgayk6CiAgICBuPWxlbihhcnIpCiAgICBkcD1bWzBdKihrKzEpIGZvciBfIGluIHJhbmdlKG4rMSldCgogICAgZm9yIGkgaW4gcmFuZ2UoMSwgbiArIDEpOgogICAgICAgIGZvciBqIGluIHJhbmdlKDEsIGsgKyAxKToKICAgICAgICAgICAgZHBbaV1bal09ZHBbaS0xXVtqXQogICAgICAgICAgICBpdGVtcyA9IDEKICAgICAgICAgICAgd2hpbGUgaXRlbXMgPD1qOgogICAgICAgICAgICAgICAgZHBbaV1bal09bWF4KGRwW2ldW2pdLGFycltpLTFdW2l0ZW1zLTFdK2RwW2ktMV1bai1pdGVtc10pCiAgICAgICAgICAgICAgICBpdGVtcys9MQoKICAgIHJldHVybiBkcFtuXVtrXQ==