import java.io.File; import java.io.FileNotFoundException; import java.io.PrintWriter; import java.util.Scanner; import java.util.StringTokenizer; public class overlap { public static void main(String[] args) throws FileNotFoundException { Scanner fi = new Scanner(new File("overlap.in")); int k = fi.nextInt(); for (int count = 0; count < k; count++) { int m = fi.nextInt(); int n = fi.nextInt(); int a[][] = new int[1000][1000]; String courses[][] = new String[1000][2]; int b[][] = new int[1000][2]; fi.nextLine(); for (int i = 0; i < m; i++) { String s = fi.nextLine(); s = s.replaceAll(":", " "); s = s.replaceAll("-", " "); StringTokenizer st = new StringTokenizer(s); courses[i][0] = st.nextToken(); courses[i][1] = st.nextToken(); b[i][0] = Integer.valueOf(st.nextToken())*60 + Integer.valueOf(st.nextToken()); b[i][1] = Integer.valueOf(st.nextToken())*60 + Integer.valueOf(st.nextToken()); } for (int i = 0; i < m; i++) { for (int j = 0; j < m; j++) { if (courses[i][1].equals(courses[j][1])) if ((b[i][0] > b[j][0] && b[i][0] < b[j][1]) || (b[i][1] > b[j][0] && b[i][1] < b[j][1])) { a[i][j] = 1; } } } int student[] = new int[11]; int stc = 0; int ans = 0; for (int i = 0; i < n; i++) { String s = fi.nextLine(); stc = 0; StringTokenizer st = new StringTokenizer(s); while (st.hasMoreTokens()) { String ss = st.nextToken(); int c = -1; for (int j = 0; j < m; j++) { if (courses[j][0].equals(ss)) c = j; } if (c != -1) { student[stc] = c; stc++; } } boolean flag = false; for (int j = 0; j < stc; j++) { for (int q = 0; q < stc; q++) { if (a[student[j]][student[q]] == 1) { flag = true; break; } } } if (flag) ans++; } System.out.println("Data Set " + (count+1) + ":"); System.out.println(ans); } } }