def rec(): ret = int(input()) if ret == -1: exit() def inp(): global g i, k = map(int, input().split()) i -= 1 g ^= A[i] remX(A[i], i) A[i] -= k setX(A[i], i) g ^= A[i] def remX(x, i): j = 0 while x > 0: if x & 1: X[j].remove(i) x >>= 1 j += 1 def setX(x, i): j = 0 while x > 0: if x & 1: X[j].add(i) x >>= 1 j += 1 def find(x): j = 0 tmp = set(range(n)) while x > 0: if x & 1: tmp &= X[j] j += 1 x >>= 1 if tmp: return next(iter(tmp)) else: return -1 X = [set() for _ in range(14)] n = int(input()) A = list(map(int, input().split())) g = 0 for i, a in enumerate(A): g ^= a setX(a, i) if g == 0: print(0) else: print(1) while 1: if g != 0: i = find(g) if i == -1: maxa = max(A) i = A.index(maxa) remX(A[i], i) to = A[i] ^ g subt = A[i] - to A[i] = to setX(to, i) g = 0 print(i + 1, subt) rec() inp() rec()