#include <bits/stdc++.h> using namespace std; const int N = 100010, M = 3000300; int son[M][2], a[N], idx; int n; void insert(int x) { int p = 0; for(int i = 30; ~i; i--) { int &s = son[p][(x >> i) & 1]; if(!s) s = ++idx; p = s; } } int query(int x) { int res = 0, p = 0; for(int i = 30; ~i; i--) { int j = (x >> i) & 1; if(son[p][!j]) { res += 1 << i; p = son[p][!j]; } else p = son[p][j]; } return res; } int main() { cin >> n; for(int i = 0; i < n; i++) cin >> a[i]; for(int i = 0; i < n; i++) insert(a[i]); int res = 0; for(int i = 0; i < n; i++) { res = max(res,query(a[i])); } cout << res << endl; return 0; }