버스 타기
시간 제한2초메모리 제한1024 MB
여러 정류장을 도는 순환 버스 노선들이 있을 때, 각 승객이 정해진 구간을 순서대로 타고 갈아타며 언제 어느 정류장에서 내리는지, 완료할 수 없으면 0 0을 출력하는 시뮬레이션 문제입니다.
문제
어떤 도시에 개의 버스 정류장이 있고, 이 정류장들을 지나는 개의 순환 버스 노선이 있다. 각 노선은 그 노선이 지나는 정류장 번호의 목록으로 주어지며, 번째 노선은 정류장 를 이 순서대로 지난다. 각 노선에는 버스가 정확히 한 대씩 다닌다. 시각 0에 번째 버스는 정류장 에 있다. 버스가 자기 노선의 다음 정류장까지 가는 데에는 정확히 1분이 걸린다. 정류장에서 버스가 서 있는 시간은 무시할 수 있다. 모든 노선은 순환 노선이므로, 정류장 를 떠난 지 1분 후 버스는 정류장 에 도착하고 노선을 다시 한 바퀴 돈다.
이 도시의 여러 사람이 버스를 타고 놀기로 했다. 각자 자신의 놀이 계획을 세웠다. 번째 사람의 계획은 놀이를 시작할 정류장 와 수열 로 이루어진다. 이 수들의 의미는 다음과 같다. 시각 0에 사람은 정류장 에 가서 가장 먼저 오는 버스를 기다린다. 만약 그 시각에 어떤 버스가 정류장 에 있다면, 사람은 그 버스에 탄다. 이 버스를 타고 개의 정류장을 지나간 뒤 내려서, 자신이 있는 정류장에서 다음 버스를 기다린다. 그 버스를 타고 개의 정류장을 지나간 뒤 다시 내려서 또 다음 버스를 기다린다. 이런 식으로 계속한다. 만약 어느 순간 정류장에 여러 대의 버스가 동시에 도착한다면, 사람은 노선 번호가 가장 작은 버스에 탄다. 사람이 어떤 정류장에서 버스에서 내리면, 그 정류장에서 1분보다 이른 시각에는 떠날 수 없다.
각 사람에 대해, 시작 시각으로부터 몇 분 후에 어느 정류장에서 그의 놀이가 끝나는지 구하시오.
입력
입력 파일에는 먼저 수 , 그 다음 수 가 주어진다. 그 다음에는 버스 노선을 나타내는 개의 줄이 주어진다. 각 줄은 노선의 길이를 나타내는 수 로 시작하고, 그 다음에 노선이 지나는 정류장의 목록 가 이어진다. 노선은 같은 정류장을 여러 번 지날 수 있다.
그 다음에는 사람의 수 가 주어지고, 이어서 사람들의 계획을 나타내는 개의 줄이 주어진다. 각 줄은 먼저 시작 정류장 번호 와 수열의 길이 를 포함하고, 그 다음에 수 가 이어진다.
입력 파일의 모든 수는 자연수이고 50을 넘지 않는다.
출력
출력 파일에 각 사람에 대해 두 수를 출력한다. 놀이가 끝나는 시각(분)과 그 일이 일어나는 정류장 번호이다. 만약 사람이 자신의 계획을 끝까지 실행할 수 없다면(어떤 정류장에서 버스를 기다려도 오지 않는다면), 그 사람에 대해 두 개의 0을 출력한다.