버스
시간 제한2초메모리 제한256 MB
매일 탑승자 중 한 명이 하루 대여료 전액을 내도록 정해 모든 직원의 공정 분담액 초과분 중 가장 큰 값을 최소화합니다.
문제
어떤 회사는 매일 퇴근하는 직원을 집까지 태워 주는 셔틀버스를 한 대 운행한다. 버스를 타려면 미리 온라인으로 신청해야 하고, 매일 아침 그날 버스를 타는 사람의 명단을 정원을 넘지 않는지 확인한 뒤 공개한다.
버스 대여료는 하루에 원이고, 몇 명이 타는지와 관계없이 같다. 모두가 받아들인 규칙에 따라 그날 버스를 탄 사람 중 정확히 한 명이 대여료 전액을 기사에게 낸다. 누가 낼지도 매일 같이 공지한다.
날마다 대여료를 낼 사람을 아래에서 정의하는 뜻으로 공정하게 고르는 프로그램을 작성한다.
가 1일째부터 일째까지 버스를 탄 직원 명단이고, 가 의 크기다. 직원 가 일째에 버스를 탔다면 가 부담해야 할 정당한 몫은
원이다. 가 대여료를 낼 사람으로 번 뽑히면 실제로 내는 돈은 원이고, 정당한 몫보다 원 더 낸 셈이 된다. 한 배정의 불공정도는 모든 직원 의 중 최댓값이다. 불공정도가 가장 작은 배정을 공정한 배정이라고 한다.
입력
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에 양의 정수 , , 가 주어진다. 은 직원 수, 는 날의 수, 는 하루 버스 대여료다 (, ).
이어지는 개의 줄에 하루치 정보가 한 줄씩 온다. 각 줄은 그날 버스를 탄 직원 수로 시작하고, 그 뒤에 이상 이하의 직원 번호가 그 개수만큼 이어진다. 한 줄에 같은 번호가 두 번 나오지는 않으며, 어느 날이든 적어도 한 명은 버스를 탄다. 계산을 쉽게 하도록 는 어느 날에도 한 사람 몫이 정수가 되게 정해져 있다.
입력의 마지막 줄은 0 0 0이고, 이 줄은 처리하지 않는다.
출력
각 테스트 케이스마다 공정한 배정의 불공정도를 한 줄에 출력한다.