#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define REP(i, n) for (int i = 0; i < (int)(n); i++) using ll = long long; using ull = unsigned long long; using Matrix = std::vector>; const int inf = 1000000000; const ll INF = 1000000000000000000; const ll mod = 998244353; const ull mod_hash = (1UL << 61) - 1; const std::vector dx = {0, 1, 0, -1, 1, 1, -1, -1}; const std::vector dy = {1, 0, -1, 0, 1, -1, 1, -1}; int main(){ int T; cin >> T; while(T--){ ll N, X; cin >> N >> X; ll target = 0; REP(i, N) { ll c; cin >> c; target += (1LL << c); } ll ans = 0; ll now = 0; REP(i, 61){ if((X >> i) & 1){ now += (1LL << i); } ll tmp = (1LL << 62); if((target >> i) & 1 && !((now >> i) & 1)){ tmp = min(tmp, (1LL << i) - now); if(now < X) tmp = min(tmp, now + 1); ans = max(ans, 2 * tmp); } } cout << ans << endl; } return 0; }