#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll dp[1003];
ll w[1003];
ll p[1003];
int main()
{
ll n,m,i,j,t;
scanf("%lld",&t);
while(t--)
{
scanf("%lld%lld",&n,&m);
memset(dp,0,sizeof(dp));
for(i=1;i<=n;i++)
{
scanf("%lld",&p[i]);
}
for(i=1;i<=n;i++)
{
scanf("%lld",&w[i]);
}
for(i=1;i<=n;i++)
{
for(j=m;j >= w[i];j--)
{
dp[j] = max(dp[j],dp[j-w[i]] + p[i]);
}
}
printf("%lld\n",dp[m]);
}
return 0;
}