#include<iostream> using namespace std; int main(int argc, char* argv[]) { int i,j,t,n,v,max,va[1001],w[1001],dp[1001]; cin>>t; while(t>0) { memset(va,0,sizeof(va)); memset(w,0,sizeof(w)); memset(dp,0,sizeof(dp)); cin>>n>>v; for(i=1;i<=n;i++) cin>>va[i]; for(i=1;i<=n;i++) cin>>w[i]; for(i=1;i<=n;i++) for(j=v;j>=w[i];j--) if(dp[j]<dp[j-w[i]]+va[i]) dp[j]=dp[j-w[i]]+va[i]; max=0; for(i=0;i<=v;i++) { if(dp[i]>max) max=dp[i]; } cout<<max<<endl; t--; } return 0; }