#include using namespace std; using ull = unsigned long long; int main() { int T; cin >> T; while(T--) { int N, S; cin >> N >> S; S++; vector B((S + 63) >> 6); B[0] = 1; while(N--) { int a; cin >> a; int p = a >> 6, q = a & 63; for(int i = B.size() - 1; i >= 0; i--) { if(i + p + 1 < B.size()) B[i + p + 1] |= B[i] >> (64 - q); if(i + p < B.size()) B[i + p] |= B[i] << q; } } if(S & 63) B.back() &= (ull(1) << (S & 63)) - 1; int t = B.size() - 1; while(!B[t]) t--; int u = 63; while(!(B[t] >> u)) u--; cout << ((t << 6) | u) << endl; } }