어떤 회사는 매일 퇴근하는 직원을 집까지 태워 주는 셔틀버스를 한 대 운행한다. 버스를 타려면 미리 온라인으로 신청해야 하고, 매일 아침 그날 버스를 타는 사람의 명단을 정원을 넘지 않는지 확인한 뒤 공개한다.
버스 대여료는 하루에 p원이고, 몇 명이 타는지와 관계없이 같다. 모두가 받아들인 규칙에 따라 그날 버스를 탄 사람 중 정확히 한 명이 대여료 전액을 기사에게 낸다. 누가 낼지도 매일 같이 공지한다.
날마다 대여료를 낼 사람을 아래에서 정의하는 뜻으로 공정하게 고르는 프로그램을 작성한다.
L1,L2,…,Ld가 1일째부터 d일째까지 버스를 탄 직원 명단이고, ni가 Li의 크기다. 직원 A가 t1,t2,…,tk일째에 버스를 탔다면 A가 부담해야 할 정당한 몫은
PA=p(nt11+nt21+⋯+ntk1)
원이다. A가 대여료를 낼 사람으로 r번 뽑히면 실제로 내는 돈은 QA=r×p원이고, 정당한 몫보다 EA=QA−PA원 더 낸 셈이 된다. 한 배정의 불공정도는 모든 직원 A의 EA 중 최댓값이다. 불공정도가 가장 작은 배정을 공정한 배정이라고 한다.
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에 양의 정수 n, d, p가 주어진다. n은 직원 수, d는 날의 수, p는 하루 버스 대여료다 (n,d≤500, p≤109).
이어지는 d개의 줄에 하루치 정보가 한 줄씩 온다. 각 줄은 그날 버스를 탄 직원 수로 시작하고, 그 뒤에 1 이상 n 이하의 직원 번호가 그 개수만큼 이어진다. 한 줄에 같은 번호가 두 번 나오지는 않으며, 어느 날이든 적어도 한 명은 버스를 탄다. 계산을 쉽게 하도록 p는 어느 날에도 한 사람 몫이 정수가 되게 정해져 있다.
입력의 마지막 줄은 0 0 0이고, 이 줄은 처리하지 않는다.
각 테스트 케이스마다 공정한 배정의 불공정도를 한 줄에 출력한다.