#include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; const ll INF=1LL<<60; typedef pair P; typedef pair PP; const ll MOD=998244353; const double PI=acos(-1); void printbit(int n){ if(n==0) cout<<"0"< c; while(n>0){ c.push_back(n%2); n/=2; } reverse(c.begin(),c.end()); for(int v:c){ cout<0){ cnt++; x/=2; } return cnt; } int main(){ int N; cin>>N; vector A(N); for(int i=0;i>A[i]; } if(N>=16){ //鳩ノ巣原理 //A[i]のどれかはbit1が立っているので 1を15個連続して立たせることが可能 int ans=(1<<16)-1; cout<void{ if(idx==N){ ans=max(ans,num); return; } for(int c=0;c<15;c++){ f(f,idx+1,num|A[idx]); A[idx]=shift(A[idx]); } }; dfs(dfs,0,0); cout<