#define _GLIBCXX_FILESYSTEM
#include <bits/stdc++.h>
using namespace std;
int solve(vector<int>&tw,vector<int>&tv,int ix,int w)
{
if(w==0) return 0;
if(ix==tw.size())return 0;
int ans=0;
ans=solve(tw,tv,ix+1,w);
if(w-tw[ix]>=0)
ans=max(ans,(solve(tw,tv,ix+1,w-tw[ix])+tv[ix]));
return ans;
}
int main()
{
int t;
cin>>t;
while(t--)
{
int n,w; //items numebr, total weight
cin>>n>>w;
vector<int> tw(n); // item weight
vector<int> tv(n); // item value;
for(int i=0;i<n;i++)
{
cin>>tw[i]>>tv[i];
}
cout<<solve(tw,tv,0,w);
}
}
I2RlZmluZSBfR0xJQkNYWF9GSUxFU1lTVEVNCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCmludCBzb2x2ZSh2ZWN0b3I8aW50PiZ0dyx2ZWN0b3I8aW50PiZ0dixpbnQgaXgsaW50IHcpCnsKICAgIGlmKHc9PTApIHJldHVybiAwOwogICAgaWYoaXg9PXR3LnNpemUoKSlyZXR1cm4gMDsKCiAgICBpbnQgYW5zPTA7CiAgICBhbnM9c29sdmUodHcsdHYsaXgrMSx3KTsKICAgIGlmKHctdHdbaXhdPj0wKQogICAgYW5zPW1heChhbnMsKHNvbHZlKHR3LHR2LGl4KzEsdy10d1tpeF0pK3R2W2l4XSkpOwoKICAgIHJldHVybiBhbnM7Cgp9CgppbnQgbWFpbigpCnsKICAgIGludCB0OwogICAgY2luPj50OwogICAgd2hpbGUodC0tKQogICAgewoKICAgICAgICBpbnQgbix3OyAgICAvL2l0ZW1zIG51bWViciwgdG90YWwgd2VpZ2h0CiAgICAgICAgY2luPj5uPj53OwogICAgICAgIHZlY3RvcjxpbnQ+IHR3KG4pOyAgLy8gaXRlbSB3ZWlnaHQKICAgICAgICB2ZWN0b3I8aW50PiB0dihuKTsgICAvLyBpdGVtIHZhbHVlOwogICAgICAgIGZvcihpbnQgaT0wO2k8bjtpKyspCiAgICAgICAgewogICAgICAgICAgICBjaW4+PnR3W2ldPj50dltpXTsKICAgICAgICB9CgogICAgICAgIGNvdXQ8PHNvbHZlKHR3LHR2LDAsdyk7CgoKCgogICAgfQoKfQo=