#include using namespace std; struct I{I(){ios::sync_with_stdio(false);cin.tie(0);}}init; typedef vector V; typedef vector Graph; inline unsigned xorshift(void) { static unsigned y = 114514; y = y ^ (y << 13); y = y ^ (y >> 17); return y = y ^ (y << 5); } inline int myrand(int mod){ return (int)(xorshift()%mod); } bool used[16][20000]; int color[20000]; int ord[]={0,1,2,4,8,3,5,6,9,10,12,7,11,13,14,15}; bool test(Graph& g){ int N=g.size(); for(int b=1;b<16;b++)for(int i=1;i>N>>M; vector A(M),B(M); for(int i=0;i>A[i]>>B[i]; Graph g(N); for(int i=0;i