단조 부분수열 길이 맞추기

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

문제

가장 긴 단조 부분수열을 찾는 문제는 잘 알려져 있다. 이번에는 방향을 뒤집어 수열을 직접 만든다.

NNKK가 주어질 때, 11부터 NN까지의 수가 각각 정확히 한 번씩 나오고 가장 긴 단조 부분수열의 길이가 정확히 KK인 수열을 구한다. 단조 부분수열은 증가 부분수열과 감소 부분수열을 함께 이른다.

부분수열은 원래 수열에서 순서를 유지한 채 원소를 골라 만든 수열이며, 고른 원소가 서로 이웃할 필요는 없다. 증가 부분수열은 값이 계속 커지고, 감소 부분수열은 값이 계속 작아진다.

입력

첫째 줄에 수열의 길이 NN과 요구되는 가장 긴 단조 부분수열의 길이 KK가 공백 하나로 구분되어 주어진다. (1KN1061 \le K \le N \le 10^6)

출력

조건을 만족하는 수열이 없으면 첫째 줄에 1-1을 출력한다.

조건을 만족하는 수열이 있으면 그런 수열 가운데 사전순으로 가장 앞서는 것 하나를 첫째 줄에 출력한다. 수 NN개를 공백 하나로 구분해 한 줄에 적는다.

두 수열의 사전순 비교는 값이 처음으로 달라지는 위치를 찾아, 그 위치의 수가 작은 쪽을 앞선 것으로 본다.

힌트

N=4N = 4, K=3K = 3인 경우 (1,4,2,3)(1, 4, 2, 3)도 조건을 만족한다. 이 수열에서 가장 긴 단조 부분수열은 (1,2,3)(1, 2, 3)이고 길이는 33이다. 조건을 만족하는 수열 중 사전순으로 가장 앞서는 것은 (1,2,4,3)(1, 2, 4, 3)이므로 답은 이 수열이다.