가장 짧은 비부분수열

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

문제

수열에서 일부 원소를 원래 순서를 유지한 채 골라 만든 수열을 부분수열이라고 한다. 예를 들어 수열 S = [1, 5, 3, 2, 5, 1, 3, 4, 4, 2, 5, 1, 2, 3]에서 첫 번째, 다섯 번째, 일곱 번째, 열 번째 원소를 고르면 부분수열 p = [1, 5, 3, 2]를 만들 수 있다.

수열 S가 주어질 때, S의 부분수열로 만들 수 없는 수열 중 길이가 가장 짧은 것은 얼마인지 구하라. 모든 원소는 1 이상 k 이하의 정수여야 한다.

입력

첫째 줄에 두 정수 nk가 주어진다. n은 수열 S의 길이이고, k는 수열에 등장할 수 있는 값의 범위이다.

1 <= n <= 100000, 1 <= k <= 10000

둘째 줄부터 n개의 줄에 걸쳐 수열 S의 원소가 순서대로 하나씩 주어진다. 각 원소는 1 이상 k 이하의 정수이다.

출력

수열 S의 부분수열로 만들 수 없는 수열 중 가장 짧은 길이를 출력한다.

힌트

1 이상 5 이하의 정수로 만들 수 있는 길이 1 또는 2의 모든 수열은 주어진 S의 부분수열로 존재한다. 그러나 길이 3인 수열 중 [2, 2, 4]S의 부분수열이 아니다.