#include using namespace std; int msb(int v){ if(v == 0)return -1; int res = 0; while(v >> res)res++; res--; return res; } int main(){ //ios::sync_with_stdio(false); //cin.tie(0); int n, v = 0, p, x, s; cin >> n; vector a(n); set> S; for(int i = 0; i < n; i++){ cin >> a[i]; v ^= a[i]; S.insert({a[i], i}); } auto update = [&](int p, int x){ S.erase(make_pair(a[p], p)); v ^= a[p]; a[p] -= x; v ^= a[p]; S.insert(make_pair(a[p], p)); }; auto my_turn = [&](){ int v2 = 1 << msb(v); auto it = S.rbegin(); int p = it -> second; if((v ^ a[p]) > a[p]){ auto it = S.lower_bound(make_pair(v2, -1)); p = it -> second; } cout << p + 1 << " " << a[p] - (v ^ a[p]) << endl; update(p, a[p] - (v ^ a[p])); }; if(v == 0){ cout << 0 << endl; cin >> p >> x; update(--p, x); }else{ cout << 1 << endl; my_turn(); } while(true){ cin >> s; if(s == -1)break; my_turn(); cin >> s; if(s == -1)break; cin >> p >> x; update(--p, x); } }