#include <bits/stdc++.h> using namespace std; int dfs(int d,vector<int> a){ if(d<0) return 0; vector<int> b,c; for(int i=0;i<(int)a.size();i++){ if((a[i]>>d)%2==0) b.push_back(a[i]); else c.push_back(a[i]); } if(b.empty()||c.empty()) return dfs(d-1,a); return (1<<d)+min(dfs(d-1,b),dfs(d-1,c)); } int main(){ int n; cin>>n; vector<int> a(n); for(int i=0;i<n;i++) cin>>a[i]; cout<<dfs(30,a)<<endl; return 0; }