#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long LL; #define PB push_back #define MP make_pair #define REP(i,n) for(i=0;i<(n);++i) #define FOR(i,l,h) for(i=(l);i<=(h);++i) #define FORD(i,h,l) for(i=(h);i>=(l);--i) const int MAXN = 100010; const int mod = 1e9+7; const int INF = 0x3f3f3f3f; const double pi = acos(-1.0); const double eps = 1e-6; int er[20],a[20]; int dp[1<<17]; int T,n,m,s,t; void init() { er[0]=1; for(int i=1; i<20; i++) er[i]=er[i-1]*2; } void bfs() { dp[0]=0; queueq; q.push(0); while(!q.empty()) { int u=q.front(); q.pop(); for(int i=0; i<17; i++) { int v=u^er[i]; if(dp[v]!=-1) continue; dp[v]=dp[u]+1; q.push(v); } for(int i=0; i>T; while(T--) { memset(dp,-1,sizeof dp); cin>>n>>m; for(int i=0; i