#include
#define max(x,y) x>y? x:y
const int MAX=1005;
using namespace std;
int main(void)
{
int cas,n,m,p[MAX],c[MAX],f[MAX];
cin>>cas;
while(cas--)
{
int i,j,num,tal;
memset(f,0,sizeof(f));
cin>>num>>tal;
for(i=1;i<=num;i++)
cin>>p[i];
for(i=1;i<=num;i++)
cin>>c[i];
for(i=1;i<=num;i++)
{
for(j=tal;j>=0;j--)
{
if(j>=c[i])
f[j]=max(f[j],f[j-c[i]]+p[i]);
}
}
cout<