import java.io.*;
import java.util.*;

public class SingleRoom implements Comparable<SingleRoom> {
	
	private int start;
	private int finish;

	public SingleRoom(int startTime, int finishTime) {
		start = startTime;
		finish = finishTime;
	}
	
	public int compareTo(SingleRoom s) {
		return this.finish - s.finish;
	}
	
	public int getFinish() {
		return finish;
	}
	
	public int getStart() {
		return start;
	}
	
	public static void main(String[] args) throws Exception {
		
		Scanner fin = new Scanner(new File("schedule.in"));
		
		int numCases = fin.nextInt();
		
		// Loop through all cases.
		for (int i=1; i<=numCases; i++) {
			
			int numEvents = fin.nextInt();
			
			SingleRoom[] thisDay = new SingleRoom[numEvents];
			
			// Read in all the information for each event.
			for (int j=0; j<numEvents; j++) {
				
				int start = fin.nextInt();
				int finish = fin.nextInt();
				thisDay[j] = new SingleRoom(start, finish);
			} 
				
			// Greedily sort by finish time.
			Arrays.sort(thisDay);
			
			// Schedule the first event.
			int numScheduled = 1;
			int canStartAt = thisDay[0].getFinish();
			
			// Loop through the rest.
			for (int j=1; j<numEvents; j++) {
				
				// Put this event in if it starts after the last one ended.
				if (thisDay[j].getStart() >= canStartAt) {
					numScheduled++;
					canStartAt = thisDay[j].getFinish();
				}
			}
			
			// Print out the result.
			System.out.println("Test case "+i+": A maximum of "+numScheduled+" events can be scheduled.");
			
		}
	}	
}