a[100000];
c(int*a,int*b){return*a-*b;}

x(int*a,int n,int i){
if(i==-1)return 0;
if(~(*a^a[n-1])>>i&1)return x(a,n,i-1);
int l=0,u=n,m;
for(;u-l>1;a[m=(l+u)/2]>>i&1?u=m:(l=m));
return 1<<i|(l=x(a,u,i-1),l<(m=x(a+u,n-u,i-1))?l:m);
}

main(n){
for(n=-2;~scanf("%d",++n+a););
qsort(a,n,4,c);
return !printf("%d",x(a,n,29));
}