Kodkraft
시간 제한2초메모리 제한1024 MB
K개 디비전의 연간 대회 일정이 주어질 때, 1부터 K까지 순서대로 등장하는 가장 짧은 구간을 찾아 그 안의 대회 수를 구한다.
문제
Nicolas는 kodkraft\texttrademark 사이트에서 프로그래밍 대회를 시작하려고 한다. 참가할 수 있는 디비전이 아주 많지만, Nicolas는 kodkraft™의 신규 참가자이므로 가장 낮은 디비전(디비전 1)에서 시작해야 한다. Nicolas의 목표는 최대한 빨리 가장 높은 디비전(디비전 )에 올라가 그곳에서 대회를 우승하는 것이다.
kodkraft™의 규칙에 따르면 한 대회마다 디비전을 하나씩만 올릴 수 있으므로, 그는 각 디비전에서 최소 한 번은 대회를 치러야 한다. 하지만 Nicolas는 매우 자신감이 넘쳐서, 다음 디비전으로 올라가려면 각 디비전에서 정확히 한 번씩만 대회를 치르면 된다고 생각한다. kodkraft™에서 대회가 열릴 때는 한 번에 하나의 디비전만 경쟁하며, 두 대회가 시간상 겹치는 일은 없다. 또한 대회 일정은 매년 동일하다.
Nicolas는 kodkraft™에서 대회를 시작할 날짜를 일 년 중 원하는 대로 정할 수 있다. Nicolas가 말하는 '최대한 빨리'란, 그가 처음 참가하는 대회부터 최고 디비전에서 처음 우승할 때까지 kodkraft™에서 열리는 대회 수(그가 참가 여부와 무관하게)가 최소가 되는 것을 뜻한다. Nicolas가 필요한 대회 수를 계산하도록 도와주자!
입력
첫 번째 줄에는 두 정수 과 가 주어진다(). 은 연간 대회 수, 는 디비전 수이다.
다음 줄에는 개의 정수 이 주어진다(). 이는 일 년 동안의 대회 일정이다. 는 새해 이후 번째 대회에서 경쟁하는 디비전이다. 부터 까지의 각 디비전은 일 년 동안 최소 한 번은 대회를 연다.
출력
Nicolas가 kodkraft™에서 대회를 시작한 때부터 디비전 에서 우승할 때까지 열려야 하는 최소 대회 수를 정수 하나로 출력한다.