컴퓨터 과학의 문제들은 흔히 NP, NP-완전, 결정 불가능 등 특정 문제 부류로 분류됩니다. 팀이 어떤 부류의 문제를 풀든, 항상 따라다니는 하나의 문제가 있습니다. 바로 모든 프로그래머가 함께 모여 프로젝트를 진행할 수 있는 시간을 찾는 일입니다.
각 팀원의 바쁜 일정표가 주어질 때, 팀이 회의할 수 있는 모든 시간대를 찾는 프로그램을 작성하세요.
첫 줄에는 시나리오(scenario)의 수가 주어집니다.
각 시나리오는 먼저 팀원 수 $m$($2 \le m \le 20$)이 한 줄에 주어집니다. 각 팀원마다 일정표의 항목 수 $n$($0 \le n \le 100$)이 적힌 줄이 주어지고, 이어서 다음 형식의 $n$개 줄이 주어집니다.
YYYY MM DD hh mm ss YYYY MM DD hh mm ss some string here
각 줄에는 한 일정의 시작과 종료 각각에 대한 연·월·일·시·분·초와 일정 설명 문자열이 담겨 있습니다. 모든 숫자는 주어진 자리수에 맞춰 0으로 채워지며, 사이는 하나의 공백으로 구분됩니다. 설명 문자열은 공백을 포함할 수 있고 길이는 최대 100자입니다. 모든 날짜는 1800년 1월 1일 0시부터 2200년 1월 1일 0시 사이에 있습니다. 계산을 단순화하기 위해, 모든 달은 정확히 30일이라고 가정해도 되며, (1월 31일 같은) 잘못된 날짜는 나타나지 않습니다.
일정의 종료 시각은 해당 팀원이 다시 시간이 비어 회의에 참여할 수 있게 되는 시점임에 유의하세요.
각 시나리오에 대해 먼저 Scenario #i: 줄을 출력합니다($i$는 1부터 시작하는 시나리오 번호). 그다음, 아래 조건을 모두 만족하는 회의 시간대마다 한 줄씩 출력합니다.
예를 들어 팀원이 A, B, C 세 명이라면 다음은 유효한 회의입니다. 처음에는 A와 B만으로 시작하고, 나중에 C가 합류하며, 끝나기 전에 A가 빠져도 됩니다.
이 조건을 만족하는 가장 긴 시간대를 항상 출력하세요(그 길이가 400년에 이르더라도 마찬가지입니다). 각 줄은 날짜·시간 순으로 정렬하고, 다음 형식을 사용합니다.
appointment possible from MM/DD/YYYY hh:mm:ss to MM/DD/YYYY hh:mm:ss
월·일·연·시·분·초는 필요한 자리수까지 0으로 채워야 합니다. 회의가 불가능하면 no appointment possible만 적힌 한 줄을 출력합니다. 연속한 시나리오의 출력은 빈 줄로 구분합니다.