#include #include #include using namespace std; int dfs(int d,const vector &_v){ if(_v.size()<2)return 0; vector > v(2); for(auto &e:_v){ int x=e&(1<>d].push_back(e^x); } return v[0].empty()?dfs(d-1,v[1]):v[1].empty()?dfs(d-1,v[0]):(1<v(N); for(int i=0;i