#include <bits/stdc++.h> using namespace std; using ll = long long; #define rep(i,n) for(int i=0; i<(int)(n); i++) #define MOD int(1e9)+7 #define MOD2 int(998244353) #define INF int(1e9)+7 #define LINF ll(1e18)+7 #define PI acos(-1) #define P pair<ll,ll> template <typename T> inline bool chmax(T &a, const T &b){ if(a<b) {a=b; return true;} else return false; } template <typename T> inline bool chmin(T &a, const T &b){ if(a>b) {a=b; return true;} else return false; } //Graph struct Edge{ int to; ll cost; Edge(int _to, ll _cost) : to(_to), cost(_cost) {} }; typedef vector<Edge> Edges; typedef vector<Edges> Graph; void add_edge(Graph &g,int from,int to,ll cost,bool rev,ll rev_cost){ g[from].push_back(Edge(to,cost)); if(rev) g[to].push_back(Edge(from,rev_cost)); } int n; ll a[110]; void solve(){ cin>>n; rep(i,n) cin>>a[i]; rep(i,63){ bool f=1; rep(j,n){ if(a[j]>>i&1) f=0; } if(f){ ll ans=(1LL<<i); cout<<ans<<endl; return; } } } int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cout<<setprecision(10)<<fixed; solve(); return 0; }