#include<bits/stdc++.h>
using namespace std;
const int maxn=1000+10;
int n,T,dis[maxn][maxn];
int dx[4]={0,1,0,-1};
int dy[4]={1,0,-1,0};
struct node
{
int x,y;
int t;
} point[maxn];
bool bfs(int x,int y,int t)
{
if(x==n && y==n) return true;
for(int i=0; i<4; i++)
{
int ddx=x+dx[i],ddy=y+dy[i];
if(ddx<0 || ddy<0 || ddx>n || ddy>n) continue;
if(dis[ddx][ddy]==0)
{
bfs(ddx,ddy,t+1);
dis[point[t].x][point[t].y]=1e9;
}
}
return false;
}
int main()
{
cin>>T;
for(int i=1; i<=T; i++)
{
cin>>n;
for(int j=1; j<=n; j++) for(int k=1; k<=n; k++) dis[j][k]=0;
for(int j=1; j<=2*n-2; j++)
{
cin>>point[j].x>>point[j].y;
point[j].t=j;
}
bool k=bfs(1,1,1);
cout<<k<<endl;
}
return 0;
}