아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

즐거운 과제 라이프

시간 제한2초메모리 제한512 MB

요약
과제를 순서대로 돌아가며 하고 M일마다 휴무일로 건너뛰며 각 과제는 Xi일이 필요할 때, 가장 먼저 끝나는 과제의 번호를 구한다.
난이도

보통10점 중 5점

유형
수학, 이분 탐색, 구현, 시뮬레이션
정답자
아직 제출이 없습니다

문제

컴퓨터과학과 교수님들은 학생들을 기쁘게 하려고 과제를 비슷한 시기에 내주신다.

이번 학기에 66전공을 채워 넣은 태호는 교수님들의 과제 공격을 받고 정신을 못 차리고 있다.

과제마다 XiX_i일 동안 하면 마무리된다. 그런데 태호는 이틀 연속으로 같은 과목의 과제를 하면 일찍 질려버린다. 그래서 태호는 매일 다른 과목의 과제를 하기로 했다. 해야 할 과제가 NN개라면, 11일 차에 첫 번째 과제를 하고, 22일 차에 두 번째 과제를 하고, ... NN일 차에 NN번째 과제를 한 뒤, 다시 N+1N+1일 차에 첫 번째 과제를 하는 것을 반복한다.

다만 쉬는 날 없이 과제만 하면 과로사할 수 있으므로, M−1M-1일 동안 과제를 하고 MM일 차에 휴식을 취하는 것을 반복한다. 쉬는 날에 원래 해야 할 과제가 있다면, 그 과제를 다음 날로 미루지 않고 아예 하지 않고 넘어간다.

예를 들어 과제가 55개 있고 44일에 한 번씩 쉰다고 하자. 11일 차에는 11번 과제를, 22일 차에는 22번 과제를, 33일 차에는 33번 과제를 한다. 44일 차에는 44번 과제를 해야 하지만 휴식일이므로 하지 않고 넘어간다. 대신 55일 차에는 44번 과제가 아닌 55번 과제를 한다.

만족스러운 계획을 짰다고 생각한 태호는 문득 과제를 언제 끝낼 수 있을지 궁금해졌다.

과제를 완료하는 데 필요한 날의 정보와 휴식일의 정보가 주어질 때, 가장 먼저 끝나는 과제를 구해보자.

입력

첫 줄에 NN과 MM이 주어진다. (2≤N≤20 0002 \le N \le 20\,000, 2≤M≤5002 \le M \le 500)

둘째 줄에 X1X_1, X2X_2, ..., XNX_N이 공백으로 구분되어 주어진다. (1≤Xi≤125 000 0001 \le X_i \le 125\,000\,000)

출력

태호가 가장 먼저 끝내는 과제의 번호를 출력한다.

예제2

  1. 예제 1

    입력
    5 7
    4 2 2 3 5
    
    예상 출력
    3
    
  2. 예제 2

    입력
    7 7
    10 9 8 4 5 6 1
    
    예상 출력
    4