주어진 수열과 자연수 $K$가 있다.
수열에서 위치가 $K$의 배수인 곳에 있는 숫자들 중 가장 큰 수를 찾는다. 이때 수열의 위치는 0부터 시작한다. 즉, 위치 $0, K, 2K, 3K, \dots$에 있는 숫자들 중 가장 큰 수를 찾는다. 만약 가장 큰 수가 여러 개라면, 그중 가장 앞에 있는 것을 선택한다. 찾은 수를 수열에서 삭제하며, 삭제된 수 뒤에 있던 숫자들은 한 칸씩 왼쪽으로 이동하여 빈자리를 채운다.
위 과정을 수열에 숫자가 남아있지 않을 때까지 반복한다. 이 과정을 수행하는 프로그램을 작성하시오.
입력
첫 번째 줄에 자연수 $N$과 $K$가 주어진다 ($2 \le K \le N \le 100\,000$).
다음 줄에 $N$개의 자연수가 주어지며, 이는 0번째부터 $(N-1)$번째까지의 수열을 구성한다. 각 수의 값은 $[1, N]$ 범위에 있다.
출력
$N$개의 자연수를 출력한다. $i$번째로 출력하는 수는 $i$번째 단계에서 삭제된 수여야 한다.
서브태스크
| 서브태스크 | 배점 | 추가 제한 |
|---|---|---|
| 1 | 7 | $N \le 1000$ |
| 2 | 25 | $K = 2$ |
| 3 | 23 | $K \le 10$ |
| 4 | 25 | $100 \le K \le N$ |
| 5 | 20 | 제한 없음 |
예제
입력 1
10 2 2 3 1 9 10 4 5 6 1 5
출력 1
10 6 4 5 2 9 3 5 1 1
입력 2
10 3 2 3 1 9 10 4 5 6 1 5
출력 2
9 10 4 5 6 2 5 3 1 1