#include <iostream>
using namespace std;
int max(int a, int b){
if (a > b) return a;
return b;
}
int main() {
int t;
cin >> t;
for (int i = 0; i < t; i++){
int n, p;
cin >> n >> p;
int s[1000], v[1000];
int A[1000][10001] = {0};
for (int j = 0; j < n; j++) {
cin >> s[j] >> v[j];
}
for (int j = 0; j < n; j++){
for (int k = 0; k <= p; k++){
if (j == 0) {
if (k >= s[j]) A[j][k] = v[j];
else A[j][k] = 0;
} else {
if (k >= s[j])
A[j][k] = max(A[j-1][k], A[j-1][k - s[j]] + v[j]);
else
A[j][k] = A[j-1][k];
}
}
}
cout << A[n-1][p];
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1heChpbnQgYSwgaW50IGIpewogICAgaWYgKGEgPiBiKSByZXR1cm4gYTsKICAgIHJldHVybiBiOwp9CgppbnQgbWFpbigpIHsKICAgIGludCB0OwogICAgY2luID4+IHQ7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHQ7IGkrKyl7CiAgICAgICAgaW50IG4sIHA7CiAgICAgICAgY2luID4+IG4gPj4gcDsKICAgICAgICBpbnQgc1sxMDAwXSwgdlsxMDAwXTsKICAgICAgICBpbnQgQVsxMDAwXVsxMDAwMV0gPSB7MH07CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBuOyBqKyspIHsKICAgICAgICAgICAgY2luID4+IHNbal0gPj4gdltqXTsKICAgICAgICB9CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBuOyBqKyspewogICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8PSBwOyBrKyspewogICAgICAgICAgICAgICAgaWYgKGogPT0gMCkgewogICAgICAgICAgICAgICAgICAgIGlmIChrID49IHNbal0pIEFbal1ba10gPSB2W2pdOwogICAgICAgICAgICAgICAgICAgIGVsc2UgQVtqXVtrXSA9IDA7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGlmIChrID49IHNbal0pCiAgICAgICAgICAgICAgICAgICAgICAgIEFbal1ba10gPSBtYXgoQVtqLTFdW2tdLCBBW2otMV1bayAtIHNbal1dICsgdltqXSk7CiAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICBBW2pdW2tdID0gQVtqLTFdW2tdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBjb3V0IDw8IEFbbi0xXVtwXTsKICAgIH0KICAgIHJldHVybiAwOwp9