#include <bits/stdc++.h>
using namespace std;
int main(){
cin.tie(0)->sync_with_stdio(0);
int p, n; cin >> p >> n;
int k = 2 * __lg(2 * n);
// cout << "k = " << k << endl;
if(p == 1){
cout << 3 << endl;
vector<int> vis(n, 0);
int x = 0;
for(int i=0; i<(n - k); i++){
int a; cin >> a;
x ^= a;
cout << 1 << endl;
vis[a] = 1;
}
vector<int> pos;
for(int i=0; i<n; i++) if(!vis[i]) pos.push_back(i);
// cout << "x = " << x << endl;
vector<bool> bit(n, 0);
for(int i=0; i<(k / 2); i++) bit[pos[i]] = (x & (1 << i));
for(int i=(k - 1); i>=(k / 2); i--) bit[pos[i]] = (x & (1 << (k - 1 - i)));
for(int i=0; i<(k - 1); i++){
int a; cin >> a;
cout << bit[a] + 2 << endl;
}
return 0;
}
vector<int> bits;
int z = 0;
for(int i=0; i<n; i++){
int a; cin >> a;
if(a > 1) bits.push_back(a - 2);
if(a == 1) z ^= i;
}
// cout << "z = " << z << endl;
int x = z, y = z;
for(int i=0; i<(k / 2); i++) x ^= (bits[i] * (1 << i));
for(int i=(k - 2); i>=(k / 2 - 1); i--) y ^= (bits[i] * (1 << (k - 2 - i)));
cout << x << " " << y << endl;
return 0;
}