버스

아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

어떤 회사는 매일 퇴근하는 직원을 집까지 태워 주는 셔틀버스를 한 대 운행한다. 버스를 타려면 미리 온라인으로 신청해야 하고, 매일 아침 그날 버스를 타는 사람의 명단을 정원을 넘지 않는지 확인한 뒤 공개한다.

버스 대여료는 하루에 pp원이고, 몇 명이 타는지와 관계없이 같다. 모두가 받아들인 규칙에 따라 그날 버스를 탄 사람 중 정확히 한 명이 대여료 전액을 기사에게 낸다. 누가 낼지도 매일 같이 공지한다.

날마다 대여료를 낼 사람을 아래에서 정의하는 뜻으로 공정하게 고르는 프로그램을 작성한다.

L1,L2,,LdL_1, L_2, \dots, L_d가 1일째부터 dd일째까지 버스를 탄 직원 명단이고, nin_iLiL_i의 크기다. 직원 AAt1,t2,,tkt_1, t_2, \dots, t_k일째에 버스를 탔다면 AA가 부담해야 할 정당한 몫은

PA=p(1nt1+1nt2++1ntk)P_A = p \left( \frac{1}{n_{t_1}} + \frac{1}{n_{t_2}} + \cdots + \frac{1}{n_{t_k}} \right)

원이다. AA가 대여료를 낼 사람으로 rr번 뽑히면 실제로 내는 돈은 QA=r×pQ_A = r \times p원이고, 정당한 몫보다 EA=QAPAE_A = Q_A - P_A원 더 낸 셈이 된다. 한 배정의 불공정도는 모든 직원 AAEAE_A 중 최댓값이다. 불공정도가 가장 작은 배정을 공정한 배정이라고 한다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에 양의 정수 nn, dd, pp가 주어진다. nn은 직원 수, dd는 날의 수, pp는 하루 버스 대여료다 (n,d500n, d \le 500, p109p \le 10^9).

이어지는 dd개의 줄에 하루치 정보가 한 줄씩 온다. 각 줄은 그날 버스를 탄 직원 수로 시작하고, 그 뒤에 11 이상 nn 이하의 직원 번호가 그 개수만큼 이어진다. 한 줄에 같은 번호가 두 번 나오지는 않으며, 어느 날이든 적어도 한 명은 버스를 탄다. 계산을 쉽게 하도록 pp는 어느 날에도 한 사람 몫이 정수가 되게 정해져 있다.

입력의 마지막 줄은 0 0 0이고, 이 줄은 처리하지 않는다.

출력

각 테스트 케이스마다 공정한 배정의 불공정도를 한 줄에 출력한다.