#include <bits/stdc++.h>
using namespace std;
int n;
vector<int> a;
int mini_max(int l, int r, int b) {
  if (b == -1) return 0;
  if ((a[l] & (1 << b)) > 0) {
    return mini_max(l, r, b - 1);
  }
  int lo = l;
  int hi = r;
  while (hi - lo > 1) {
    int mid = (lo + hi) / 2;
    if ((a[mid] & (1 << b)) == 0) {
      lo = mid;
    } else {
      hi = mid;
    }
  }
  if (lo == r - 1) {
    return mini_max(l, r, b - 1);
  }
  int x = mini_max(l, lo + 1, b - 1);
  int y = mini_max(lo + 1, r, b - 1);
  return (1 << b) + min(x, y);
}
int main() {
  cin >> n;
  a.resize(n);
  for (int i = 0; i < n; ++i) {
    cin >> a[i];
  }
  sort(a.begin(), a.end());
  cout << mini_max(0, n, 29) << '\n';
}
