#include<stdio.h>
#include<string.h>
int max(int a,int b)
{
if(a>b)return a;
else return b;
}
int c[1009],w[1009],s[1009][1009];
int main()
{
int i,j,t,n,v;
scanf("%d",&t);
while(t--)
{
memset(s,0,sizeof(s));
scanf("%d%d",&n,&v);
for(i=1;i<=n;i++)
scanf("%d",&c[i]);
for(i=1;i<=n;i++)
scanf("%d",&w[i]);
for(i=1;i<=n;i++)
{
for(j=0;j<=v;j++)
{
if(j>=w[i])
s[i][j]=max(s[i-1][j],s[i-1][j-w[i]]+c[i]);
else
s[i][j]=s[i-1][j];
}
}
printf("%d\n",s[n][v]);
}
return 0;
}