#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> V, int bit) {
  if (V.size() == 0 || bit < 0) {
    return 0;
  }
  vector<int> zera;
  vector<int> jedynki;
  for (int a : V) {
    if ((a & (1 << bit)) == 0) {
      zera.push_back(a);
    } else {
      jedynki.push_back(a ^ (1 << bit));
    }
  }
  if (zera.size() == 0) {
    return solve(jedynki, bit - 1);
  }
  if (jedynki.size() == 0) {
    return solve(zera, bit - 1);
  }
  int w_zera = solve(zera, bit - 1);
  int w_jedynki = solve(jedynki, bit - 1);
  return (1 << bit) + min(w_zera, w_jedynki);
}
int main() {
  int n;
  cin >> n;
  vector<int> V;
  for (int i = 1; i <= n; i++) {
    int a;
    cin >> a;
    V.push_back(a);
  }
  cout << solve(V, 30);
  return 0;
}
