#include <cstring>  
    #include <cstdio>  
    #include <cstring>  
    #include <iostream>  
      
    using namespace std;  
      
    int main(){  
        int N, V, v, i;  
        long long val[1010], c[1010], ans[1010];  
        int t;  
        cin >> t;  
        while(t --){  
            cin >> N >> V;  
            memset(val, 0, sizeof(val));  
            memset(c, 0, sizeof(c));  
            memset(ans, 0, sizeof(ans));  
            for(i = 1; i <= N; i ++)  
                scanf("%I64d", &val[i]);  
            for(i = 1; i <= N; i ++)  
                scanf("%I64d", &c[i]);  
            for(i=1; i <= N; i ++){  
                for(v = V; v >= c[i]; v--){  
                   ans[v] = max (ans[v], ans[v-c[i]] + val[i]);  
                }  
            }  
            cout << ans[V] << endl;  
        }  
        return 0;  
    }