#include<bits/stdc++.h>
using namespace std;
/*
首先排除cd自己出问题的状况为0

对于每一个关系都有一个赋值，但实际上变量为1e9,因此可能有速算方法，比如组合数学
样例的第一个，为第一个赋值，2不赋值，那么有v*v种，并且2是随意的，每种情况等可能？ 
对于一不赋值，2不赋值，都可以任意选v*v，并且后面随意，情况等可能？ 
对于两者都赋值，(v-1)*v+1
1没有2有，v^2 
但是

似乎可以动态规划
dp[i][0/1]表示上一个i-1~i的约束是有效还是无效的所有情况
dp[i][0]=dp[i-1][1]*(v-1)*v+dp[i-1][0]*(v-1)*v (i,i-1无约束) 
dp[i][1]=dp[i-1][1]*v+dp[i-1][0]*v 
(i-1约束，i不约) 
dp[i][0]=dp[i-1][1]*v+dp[i-1][0]*v;
dp[i][1]=

好像是矩阵乘法
 
*/
 
const long long mod=1e9+7,N=1e6+5;

long long T,n,m,v,dp[N][2];

bool vis[N];
int main(){
	freopen("traverse.in","r",stdin);
	freopen("traverse.out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	cin>>n>>T;
	while(T--){
		cin>>n>>m;
		for(int i=1;i<n;i++){
			int x,y;
			cin>>x>>y;
		}
		cout<<2<<"\n";
	}
	return 0;
}
