플로우 숍
시간 제한6초메모리 제한512 MB
N개의 제품이 M개의 공정을 동일한 순서로 통과하며, 각 공정에서 대기 중인 제품 중 번호가 가장 작은 것을 먼저 처리할 때 각 제품의 완료 시각을 구한다.
문제
한 공장에서 곡물을 수확할 때 쓰는 예취기를 주문 제작한다. 모든 예취기는 같은 순서의 공정을 거친다. 절단 바를 달고, 곡물 벨트를 끼우고, 릴을 장착하는 식이다. 부품은 주문자의 요구에 맞춰 달라지므로 같은 공정이라도 예취기마다 걸리는 시간이 다르다.
예취기 대를 주문받았고 제조 공정은 단계다. 모든 예취기는 1번 공정부터 번 공정까지 같은 순서로 지나간다.
번 예취기의 번 공정에는 시간 가 걸린다. 한 공정의 작업자는 한 번에 예취기 한 대만 다루고, 한번 시작한 작업은 끝날 때까지 멈추지 않는다. 시각 0에 주문 건이 모두 1번 공정 앞에 놓인다. 번 공정의 작업자가 쉬고 있고 그 공정 앞에 기다리는 예취기가 있으면, 작업자는 그중 번호가 가장 작은 예취기를 집는다. 예취기에는 1번부터 번까지 번호가 붙어 있다. 번 공정은 같은 예취기의 번 공정이 끝난 뒤에야 시작할 수 있다.
예취기마다 작업이 모두 끝나는 시각을 구하라.
입력
첫째 줄에 예취기의 수 과 공정의 수 이 주어진다 (). 다음 개 줄에는 각각 정수 개가 주어진다. 번째 줄의 번째 정수가 다 ().
출력
한 줄에 정수 개 을 공백 하나로 구분해 출력한다. 는 번 예취기의 번 공정이 끝나는 시각이다.