#include<stdio.h>#include<string.h>struct node{int x1,x2,y1,y2,pre;}rec[15];int map[15][15],ru[15],vis[15],n,minn;bool pan(int i,int j){if(rec[i].y2==rec[j].y1&&!(rec[i].x2<rec[j].x1||rec[i].x1>rec[j].x2))return true;else return false;}void bfs(int col,int deep,int sum){int i,j;if(sum>=minn)return;if(deep==n){minn=sum;return;}for(i=0;i<n;i++)if(!vis[i]){if(!ru[i]){vis[i]=1;for(j=0;j<n;j++)if(map[i][j])ru[j]--;if(col==rec[i].pre)bfs(rec[i].pre,deep+1,sum);else bfs(rec[i].pre,deep+1,sum+1);for(j=0;j<n;j++)if(map[i][j])ru[j]++;vis[i]=0;}}}int main(){int T,i,k,j;scanf("%d",&T);while(T--){scanf("%d",&n);for(i=0;i<n;i++)scanf("%d%d%d%d%d",&rec[i].y1,&rec[i].x1,&rec[i].y2,&rec[i].x2,&rec[i].pre);memset(map,0,sizeof(map));memset(ru,0,sizeof(ru));memset(vis,0,sizeof(vis));for(i=0;i<n;i++)for(j=0;j<n;j++)if(pan(i,j)){map[i][j]=1;ru[j]++;}minn=1<<30;bfs(-1,0,0);printf("%dn",minn);}return 0;}


