포뮬러 1 월드 챔피언

각 경기에서 모든 드라이버의 순위가 주어질 때, 여러 점수 체계별로 총점을 계산해 우승자를 구하고 동점이면 공동 우승자를 모두 출력한다.

쉬움3구현배열정렬면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

포뮬러 1 시즌은 국제자동차연맹(FIA)이 주최하는 그랑프리라는 경주 여러 개로 이루어진다. 각 그랑프리에서는 결승선을 통과한 순위에 따라 드라이버에게 점수를 준다. 시즌이 끝나면 점수 합계가 가장 많은 드라이버가 월드 드라이버 챔피언이 된다.

주최 측은 경쟁을 더 치열하게 만들려고 규칙을 자주 바꾼다. 2010년 시즌에 바뀐 규칙 하나가 그랑프리마다 점수를 나누는 방식이다. 2003년부터는 상위 8명이 다음 표대로 점수를 받았다.

순위12345678
점수108654321

즉 우승자는 10점, 2위는 8점을 받고, 나머지도 같은 방식이다.

2010년 시즌부터는 상위 10명이 다음 표대로 점수를 받는다.

순위12345678910
점수251815121086421

배점이 바뀌자 지난 시즌에 새 배점을 적용했다면 챔피언이 달라졌을지를 두고 말이 많아졌다. 예를 들어 2008년 Lewis Hamilton과 Felipe Massa의 최종 점수 차이는 1점뿐이었는데, 새 배점에서도 Hamilton이 챔피언이었을까? FIA는 이 논쟁을 정리하려고, 한 시즌의 모든 경주 결과와 여러 배점 방식이 주어졌을 때 배점 방식마다 월드 드라이버 챔피언을 구하는 프로그램을 준비하기로 했다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다.

각 테스트 케이스의 첫 줄에는 그랑프리 수 GG (1G1001 \le G \le 100)와 드라이버 수 PP (1P1001 \le P \le 100)가 공백으로 구분되어 주어진다. 드라이버는 11부터 PP까지의 정수로 구분한다. 이어지는 GG개의 줄은 각 경주의 결과이고, 한 줄에 PP개의 정수가 공백으로 구분되어 주어진다. 한 줄의 ii번째 수는 그 경주에서 드라이버 ii가 들어온 순위이다.

그다음 줄에는 배점 방식의 개수 SS (1S101 \le S \le 10)가 주어진다. 이어지는 SS개의 줄에는 배점 방식 하나씩이 주어진다. 각 줄은 점수를 받는 마지막 순위 KK (1KP1 \le K \le P)로 시작하고, 그다음에 KK개의 정수 k1,k2,,kKk_1, k_2, \dots, k_K (1ki1001 \le k_i \le 100)가 공백으로 구분되어 주어진다. 첫 번째 정수는 1위가 받는 점수, 두 번째 정수는 2위가 받는 점수이고, 나머지도 같은 방식이다. KK위보다 낮은 순위로 들어온 드라이버는 점수를 받지 않는다.

마지막 테스트 케이스 다음 줄에는 00 두 개가 공백으로 구분되어 주어진다.

출력

입력에 주어진 배점 방식마다 한 줄에 월드 드라이버 챔피언의 번호를 출력한다.

챔피언이 두 명 이상이면, 즉 점수가 같아 공동 챔피언이 되면 그 줄에 모든 챔피언의 번호를 오름차순으로 공백 하나씩 구분해 출력한다.