#include <bits/stdc++.h>
using namespace std;
long long C2(long long n) {
  long long ans = max(((n * (n - 1)) / 2), (long long)0);
  return ans;
}
long long sq(long long n) { return n * n; }
long long gcd(long long a, long long b) {
  if (a < b) {
    swap(a, b);
  }
  if (b == 0) {
    return a;
  } else {
    return gcd(b, a % b);
  }
}
long long lcm(long long a, long long b) {
  if (a == 0 || b == 0) {
    return 0;
  } else {
    return ((long long)((a * b) / gcd(a, b)));
  }
}
bool sortsec(const pair<long long, long long> &a,
             const pair<long long, long long> &b) {
  return (a.second < b.second);
}
long long BinExp(long long a, long long b, long long m) {
  a %= m;
  long long res = 1;
  while (b > 0) {
    if (b & 1) {
      res = (res * a) % m;
    }
    a = (a * a) % m;
    b >>= 1;
  }
  return res;
}
vector<vector<int>> SubSeq;
void allSub(vector<int> arr, int index, vector<int> subarr) {
  if (index == arr.size()) {
    int l = subarr.size();
    if (l != 0) {
      SubSeq.push_back(subarr);
    }
  } else {
    allSub(arr, index + 1, subarr);
    subarr.push_back(arr[index]);
    allSub(arr, index + 1, subarr);
  }
  return;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int t;
  cin >> t;
  for (int p = 0; p < t; p++) {
    int n;
    cin >> n;
    int a[n];
    vector<int> s;
    for (int i = 0; i < n; i++) {
      cin >> a[i];
      s.push_back(a[i]);
    }
    sort(s.begin(), s.end());
    bool flag = 0;
    int ans = 0;
    for (int i = 1; i < 1024; i++) {
      vector<int> s1;
      for (int j = 0; j < n; j++) {
        s1.push_back(a[j] ^ i);
      }
      sort(s1.begin(), s1.end());
      if (s == s1) {
        flag = 1;
        ans = i;
        break;
      }
    }
    if (flag == 1) {
      cout << ans << "\n";
    } else {
      cout << -1 << "\n";
    }
  }
  return 0;
}
