#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T;
cin >> T;
if (T == 1) {
int N; long long X;
cin >> N >> X;
vector<pair<int,int>> cards(N);
for (int i=0; i<N; i++) {
int a,b; cin >> a >> b;
if (a>b) swap(a,b);
cards[i]={a,b};
}
vector<int> ans(N);
for (int i=0; i<N; i++) {
if ((X>>i)&1LL) ans[i]=cards[i].second;
else ans[i]=cards[i].first;
}
for (int i=0; i<N; i++) {
cout << ans[i] << (i+1==N?'\n':' ');
}
}
else {
int N; cin >> N;
vector<int> chosen(N);
for (int i=0; i<N; i++) cin >> chosen[i];
// 선택 여부 표시
vector<int> isChosen(2*N+1,0);
for (int x: chosen) isChosen[x]=1;
long long X=0;
int bit=0;
for (int i=1; i<=2*N; i+=2) {
int lo=i, hi=i+1; // (lo,hi) 카드쌍
if (isChosen[hi]) X |= (1LL<<bit);
// lo가 선택됐다면 해당 비트는 0
bit++;
}
cout << X << "\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CgogICAgaW50IFQ7CiAgICBjaW4gPj4gVDsKICAgIGlmIChUID09IDEpIHsKICAgICAgICBpbnQgTjsgbG9uZyBsb25nIFg7CiAgICAgICAgY2luID4+IE4gPj4gWDsKICAgICAgICB2ZWN0b3I8cGFpcjxpbnQsaW50Pj4gY2FyZHMoTik7CiAgICAgICAgZm9yIChpbnQgaT0wOyBpPE47IGkrKykgewogICAgICAgICAgICBpbnQgYSxiOyBjaW4gPj4gYSA+PiBiOwogICAgICAgICAgICBpZiAoYT5iKSBzd2FwKGEsYik7CiAgICAgICAgICAgIGNhcmRzW2ldPXthLGJ9OwogICAgICAgIH0KICAgICAgICB2ZWN0b3I8aW50PiBhbnMoTik7CiAgICAgICAgZm9yIChpbnQgaT0wOyBpPE47IGkrKykgewogICAgICAgICAgICBpZiAoKFg+PmkpJjFMTCkgYW5zW2ldPWNhcmRzW2ldLnNlY29uZDsKICAgICAgICAgICAgZWxzZSBhbnNbaV09Y2FyZHNbaV0uZmlyc3Q7CiAgICAgICAgfQogICAgICAgIGZvciAoaW50IGk9MDsgaTxOOyBpKyspIHsKICAgICAgICAgICAgY291dCA8PCBhbnNbaV0gPDwgKGkrMT09Tj8nXG4nOicgJyk7CiAgICAgICAgfQogICAgfQogICAgZWxzZSB7CiAgICAgICAgaW50IE47IGNpbiA+PiBOOwogICAgICAgIHZlY3RvcjxpbnQ+IGNob3NlbihOKTsKICAgICAgICBmb3IgKGludCBpPTA7IGk8TjsgaSsrKSBjaW4gPj4gY2hvc2VuW2ldOwogICAgICAgIC8vIOyEoO2DnSDsl6zrtoAg7ZGc7IucCiAgICAgICAgdmVjdG9yPGludD4gaXNDaG9zZW4oMipOKzEsMCk7CiAgICAgICAgZm9yIChpbnQgeDogY2hvc2VuKSBpc0Nob3Nlblt4XT0xOwoKICAgICAgICBsb25nIGxvbmcgWD0wOwogICAgICAgIGludCBiaXQ9MDsKICAgICAgICBmb3IgKGludCBpPTE7IGk8PTIqTjsgaSs9MikgewogICAgICAgICAgICBpbnQgbG89aSwgaGk9aSsxOyAvLyAobG8saGkpIOy5tOuTnOyMjQogICAgICAgICAgICBpZiAoaXNDaG9zZW5baGldKSBYIHw9ICgxTEw8PGJpdCk7CiAgICAgICAgICAgIC8vIGxv6rCAIOyEoO2DneuQkOuLpOuptCDtlbTri7kg67mE7Yq464qUIDAKICAgICAgICAgICAgYml0Kys7CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwgWCA8PCAiXG4iOwogICAgfQogICAgcmV0dXJuIDA7Cn0=