#include<iostream>
using namespace std;
int max(int a,int b)
{
return a>b?a:b;
}
int main()
{
int n,t,i,j,a[1005],b[1005],e,d;
cin>>t;
while(t--)
{
int c[1005]={0};
cin>>e>>d;
for(i=0;i<e;i++)
cin>>a[i];//价值
for(i=0;i<e;i++)
cin>>b[i]; //体积
for(i=0;i<e;i++)
{
for(j=d;j>=b[i];j--)
{
c[j]=max(c[j],c[j-b[i]]+a[i]);
}
}
cout<<c[d]<<endl;
}
return 0;
}