최악의 버스 시간표

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

문제

당신은 기다리는 것을 몹시 싫어한다. 뉴올리언스에 사는 친척을 만나러 가는 길인데, 지금 서 있는 버스 정류장의 시간표가 여태 본 것 중 가장 엉망이다. 도착 시각도 출발 시각도 적혀 있지 않고, 운행 중인 버스마다 노선 하나를 도는 데 걸리는 시간만 죽 나열되어 있다. 그래서 노트북을 꺼내 다음 버스가 올 때까지 얼마나 기다려야 하는지 계산하는 프로그램을 짜기로 한다.

모든 버스는 시각 0에 정류장을 출발하고, 주어진 순서대로 노선을 계속 반복해서 돈다. 노선 하나를 마치는 순간 정류장으로 돌아오고 곧바로 다음 노선으로 떠난다. 마지막 노선을 마치면 다시 첫 번째 노선부터 시작한다. 당신이 도착한 시각부터 세어 어떤 버스든 정류장에 있는 가장 이른 순간을 찾고, 그때까지 기다리는 시간을 구하라.

입력

입력은 비어 있지 않으며 최대 100개의 테스트 데이터로 이루어진다. 테스트 데이터 사이에 빈 줄은 없다.

테스트 데이터 하나는 네 부분으로 구성된다.

  1. 시작 줄. START N 형식의 한 줄이며, N은 운행 중인 버스의 수이다. 1N201 \le N \le 20이다.
  2. 노선 시간 줄. N개의 줄이 이어지고, 각 줄은 버스 한 대의 노선 소요 시간 M개를 공백으로 구분해 담는다. 1M101 \le M \le 10이며 M은 줄마다 다를 수 있다. 소요 시간은 모두 1 이상 1000 이하의 정수이다.
  3. 도착 시각 줄. 정수 하나가 주어진다. 버스가 운행을 시작한 시각 0을 기준으로, 당신이 정류장에 도착해 기다리기 시작한 시각이며 0 이상이다.
  4. 끝 줄. END 한 줄이다.

마지막 테스트 데이터 다음에는 ENDOFINPUT 한 줄이 온다.

출력

테스트 데이터마다 한 줄씩 출력한다. 정류장에 도착한 뒤 다음 버스가 올 때까지 기다려야 하는 시간을 정수로 출력한다. 기다리는 것을 싫어하니 가장 먼저 정류장에 돌아오는 버스를 그냥 탄다.

힌트

  1. 모든 버스는 쉬지 않고 노선을 돈다. 마지막 노선이 끝나면 다시 첫 번째 노선부터 시작한다.
  2. 도착한 시각이 어떤 버스의 출발 시각과 정확히 겹치면 그 자리에서 바로 그 버스를 탄다. 모든 버스가 시각 0에 출발하므로, 시각 0에 도착하면 기다리는 시간은 0이다.