#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int main(int argc, const char * argv[]) {
int T;
int N,V;
int w[1005];
int v[1005];
int dp[1005];
while(scanf("%d",&T)!=EOF){
for(int i=0;i<T;i++){
scanf("%d %d",&N,&V);
memset(w, 0, 4020);
memset(v, 0, 4020);
memset(dp, 0, 4020);
for(int j=1;j<=N;j++)
scanf("%d",&v[j]);
for(int j=1;j<=N;j++)
scanf("%d",&w[j]);
for(int j=1;j<=N;j++)
for(int k=V;k>=0;k--)
if(k>=w[j])
dp[k]=max(dp[k],dp[k-w[j]]+v[j]);
printf("%d\n",dp[V]);
}
}
return 0;
}