#include<string.h>
#include<algorithm>
using namespace std;
#define Maxn 500
#define swap(s,t) (s)^=(t)^=(s)^=(t);
#define INF 1<<30
int array[Maxn];
struct node
{
int left,right;
}Node[3*Maxn];
bool cmp(node &a,node &b)
{
return a.left<b.left;
if(a.left<b.left) {return 1;}
return a.right<b.right;
}
void Bin(node _Node[] ,int left,int right)
{
int i;
if((right-left)==1)
{
if(_Node[left].right>=_Node[right].left){
for( i=_Node[right].left;i<=_Node[left].right;i++){array[i]++; }
}
return;
}
if(right==left){return;}
int mid=(left+right)>>1;
Bin(_Node,left,mid);
Bin(_Node,mid+1,right);
if(_Node[mid].right>=_Node[mid+1].left)
{
//printf("%d %d\n",_Node[mid].right,_Node[mid+1].left);
for(i=_Node[mid+1].left;i<=_Node[mid].right;i++)
{
array[i]++;
}
}
}
int main()
{
int n,m;
int s,t;
int i;
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
memset(array,0,sizeof(array));
for( i=0;i<m;i++)
{
scanf("%d%d",&s,&t);
if(s>t){swap(s,t);}
if(s%2==0){s=s>>1;}else s=(s+1)>>1;
if(t%2==0){t=t>>1;}else t=(t+1)>>1;
Node[i].left=s;
Node[i].right=t;
}
sort(Node,Node+m,cmp);
Bin(Node,0,m-1);
int maxnum=-1;
for(i=0;i<200;i++)
{
if(array[i]>maxnum){maxnum=array[i];}
}
printf("%d\n",(maxnum+1)*10);
}
}
/*
#include<iostream>
using namespace std;
int main()
{
int M;
cin>>M;
while(M--)
{
int i,n,k,l; //l個需要搬動的桌子,起始n,中止k
cin>>l;
int id[201]={0};
while(l--)
{
cin>>n>>k;
if(n>k)
{i=n;n=k;k=i;} //交換小值n在前
for(i=(n+1)/2;i<=(k+1)/2;i++) //奇數偶數全加一然後除以2就是走廊號。
id[i]++;
}
int max=0;
for(i=0;i<201;i++)
if(max<id[i])
max=id[i]; //找最大值
cout<<max*10<<endl;
}
return 0;
}*/