#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  long long T, s, pozw, x, k, n, mi, m, qqq, a, b, z, kot, t, w, g, h, sum, f,
      poz, kry, kol, ot, i, q, ma, kolv, p, l, r, y, za, zu, sum1;
  vector<long long> pod, dup, vov, ne, st(31);
  cin >> t;
  st[0] = 1;
  for (i = 1; i <= 30; i = i + 1) {
    st[i] = 2 * st[i - 1];
  }
  for (qqq = 0; qqq < t; qqq = qqq + 1) {
    cin >> a >> b;
    x = 0;
    for (i = 0; i <= 30; i = i + 1) {
      if (((a & st[i]) > 0) && ((b & st[i]) > 0)) {
        x = x + st[i];
      }
    }
    p = (a ^ x) + (b ^ x);
    cout << p << "\n";
  }
  return 0;
}

### Prompt

Please provide a cpp coded solution to the problem described below:

In order to celebrate Twice's 5th anniversary, Tzuyu and Sana decided to play a game.

Tzuyu gave Sana two integers a and b and a really important quest.

In order to complete the quest, Sana has to output the smallest possible value of (a ⊕ x) + (b ⊕ x) for any given x, where ⊕ denotes the [bitwise XOR operation](http://en.wikipedia.org/wiki/Bitwise_operation#XOR). 

Input

Each test contains multiple test cases. The first line contains the number of test cases t (1 ≤ t ≤ 10^{4}). Description of the test cases follows.

The only line of each test case contains two integers a and b (1 ≤ a, b ≤ 10^{9}).

Output

For each testcase, output the smallest possible value of the given expression.

Example

Input


6
6 12
4 9
59 832
28 14
4925 2912
1 1


Output


10
13
891
18
6237
0

Note

For the first test case Sana can choose x=4 and the value will be (6 ⊕ 4) + (12 ⊕ 4) = 2 + 8 = 10. It can be shown that this is the smallest possible value.

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  long long T, s, pozw, x, k, n, mi, m, qqq, a, b, z, kot, t, w, g, h, sum, f,
      poz, kry, kol, ot, i, q, ma, kolv, p, l, r, y, za, zu, sum1;
  vector<long long> pod, dup, vov, ne, st(31);
  cin >> t;
  st[0] = 1;
  for (i = 1; i <= 30; i = i + 1) {
    st[i] = 2 * st[i - 1];
  }
  for (qqq = 0; qqq < t; qqq = qqq + 1) {
    cin >> a >> b;
    x = 0;
    for (i = 0; i <= 30; i = i + 1) {
      if (((a & st[i]) > 0) && ((b & st[i]) > 0)) {
        x = x + st[i];
      }
    }
    p = (a ^ x) + (b ^ x);
    cout << p << "\n";
  }
  return 0;
}

```