#1423. 1010 A+B Problem

1010 A+B Problem

本题有 TT 组数据。对于一组数据,有 qq 组询问,每次询问给定两个非负整数 a,ba,b,输出 (a+b)mod232(a+b)\bmod 2^{32}
你需要“离线”回答每组询问。具体地,记第 ii 次回答的答案为 ansians_i,在第 ii 组询问中你读入 ai,bia_i',b_i' 后,真正询问的值为 ai=ai xor ansi1a_i=a_i'\text{ xor }ans_{i-1}bi=bi xor ansi1b_i=b_i'\text{ xor }ans_{i-1}。特殊地,记 ans0=ansqans_0=ans_q
请求出 ans1,...,ansqans_1,...,ans_q 并输出。如果存在多组解,请输出字典序最小的解。
对于两个长度为 qq 的序列 Q1,Q2Q_1,Q_2,称 Q1Q_1 字典序小于 Q2Q_2 当且仅当存在 i[1,q]i \in [1, q] 满足以下两个条件:

  1. 1j<i,Q1,j=Q2,j1\leq j\lt i, Q_{1,j}=Q_{2,j}
  2. Q1,i<Q2,iQ_{1,i} \lt Q_{2,i}

Input

本题有多组数据。第一行一个正整数 TT1T2×1041\le T\le 2\times 10^4),表示测试数据组数。
对于每组数据,第一行一个正整数 qq1q3×1051\le q\le 3\times 10^5)。
接下来 qq 行,第 ii 行两个非负整数 ai,bia'_i,b'_i0ai,bi23210\le a'_i,b'_i\le 2^{32}-1)。
数据保证 q3×105\sum q\le 3\times 10^5,保证有解。

Output

对于一组数据,输出 qq 行,第 ii 行表示第 ii 组询问的答案 ansians_i

Input Output
2
2
0 1
1 0
3
3 2
0 0
3 0
1
1
1
2
3