package YesNo;
import java.util.Scanner;
public class Sangr {
public static int[][] thing;
public static int[] a;
public static int geshu;
public static int max;
public static int res[]=new int[100];
public static int respc=0;
public static void dFS(int curthing,int sum,int curA,int curB){
if(curthing==geshu){
if(max<sum) max=sum;
return ;
}
if((thing[curthing][0]*60+thing[curthing][1]>=thing[curA][2]*60+thing[curA][3])||(thing[curthing][2]*60+thing[curthing][3]<=thing[curA][0]*60+thing[curA][1])){
dFS(curthing+1,sum+thing[curthing][2]*60+thing[curthing][3]-thing[curthing][0]*60+thing[curthing][1],curthing,curB);
}
if((thing[curthing][0]*60+thing[curthing][1]>=thing[curB][2]*60+thing[curB][3])||(thing[curthing][2]*60+thing[curthing][3]<=thing[curB][0]*60+thing[curB][1])){
dFS(curthing+1,sum+thing[curthing][2]*60+thing[curthing][3]-thing[curthing][0]*60+thing[curthing][1],curA,curthing);
}
dFS(curthing+1,sum,curA,curB);
}
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int testnum=sc.nextInt();
int iunum=testnum;
while(testnum-->0){
max=0;
geshu=sc.nextInt();
a=new int[geshu];
thing=new int[geshu][4];
for(int i=0;i<geshu;i++){
for(int j=0;j<4;j++){
thing[i][j]=sc.nextInt();
}
}
dFS(0,0,0,0);
res[respc++]=max;
}
for(int i=0;i<iunum;i++){
System.out.println(res[i]);
}
}
}