#include #include #include #include using namespace std; int n,m; int map[85][85],sum[85],vis[5010]; int has[3]={0,2,0}; struct edge { int from,to,len; }ans[5010]; int solve(int len,int num) { int tmp=len%3; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(i!=j&&!map[i][j]&&!map[j][i]) { if(j>i) { if((sum[j]-sum[i]+3)%3==tmp) { map[i][j]=1; ans[num].from=i; ans[num].to=j; ans[num].len=len; return 1; } } else { if((sum[i]-sum[j]+3+tmp)%3==0) { map[i][j]=1; ans[num].from=i; ans[num].to=j; ans[num].len=len; return 1; } } } } } return 0; } int main() { int ncase,T=0; scanf("%d",&ncase); while(ncase--) { memset(vis,0,sizeof(vis)); memset(map,0,sizeof(map)); memset(sum,0,sizeof(sum)); scanf("%d%d",&n,&m); sum[1]=0; for(int i=1;i