defbag_weight_problem(n,space,weight,value):
dp =[[0for i inrange(space+1)]for j inrange(n)]for i inrange(weight[0], space+1):
dp[0][i]=value[0]for j inrange(1, n):for k inrange(space+1):if weight[j]>k:
dp[j][k]=dp[j-1][k]else:
dp[j][k]=max(dp[j-1][k], dp[j-1][k-weight[j]]+value[j])return dp[n-1][space]if __name__ =='__main__':
n, space =[int(x)for x ininput().split()]
weight =[int(x)for x ininput().split()]
value =[int(x)for x ininput().split()]
result = bag_weight_problem(n,space,weight,value)print(result)
defbag_weight_problem(n,space,weight,value):
dp =[0for i inrange(space+1)]for j inrange(n):for k inrange(space,weight[j]-1,-1):
dp[k]=max(dp[k], dp[k-weight[j]]+value[j])return dp[space]if __name__ =='__main__':
n, space =[int(x)for x ininput().split()]
weight =[int(x)for x ininput().split()]
value =[int(x)for x ininput().split()]
result = bag_weight_problem(n,space,weight,value)print(result)