Busy Beaver는 언어학 수업을 위해 새로운 언어를 만들고 있습니다! 그는 이미 자신의 언어에 사용할 알파벳을 정수 $1, \dots, NM$으로 순서대로 구성하기로 결정했습니다. 이제 그는 이 언어에 사용할 몇 개의 단어를 만들고자 합니다.
Busy Beaver는 통계에 관심이 많기 때문에 단어에 나타나는 글자의 빈도를 제어하고 싶어 합니다. 그래서 그는 알파벳에서 크기가 $NM$인 글자들의 다중집합 $a$를 선택했습니다. 이제 그는 각 글자가 다중집합 $a$에 포함된 만큼 정확히 한 번씩 사용되도록(즉, 어떤 글자 $x$가 $a$에 $k$번 나타난다면, $N$개의 단어 전체에서 $x$가 정확히 $k$번 사용되도록) 각각 $M$개의 글자로 이루어진 $N$개의 단어를 만들 것입니다.
단어를 만든 후, Busy Beaver는 이를 사전으로 정리하기 위해 $N$개의 단어를 사전순으로 정렬하여 단어의 수열 $s_1, \dots, s_N$을 만들 계획입니다. Busy Beaver는 사전순으로 작은 문자열을 선호하므로, 각 $k$ ($1$부터 $N$까지)에 대해 가능한 모든 단어 구성 방법 중에서 $s_k$의 사전순 최솟값을 알고 싶어 합니다.
각 $s_k$에 대한 답은 독립적이라는 점에 유의하십시오. 예를 들어, $s_1$을 최소화하기 위한 단어 선택과 $s_2$를 최소화하기 위한 단어 선택은 다를 수 있습니다.
입력
첫 번째 줄에는 두 개의 양의 정수 $N, M$ ($1 \le NM \le 10^6$)이 주어집니다.
두 번째 줄에는 다중집합 $a$를 구성하는 $NM$개의 정수 $a_1, \dots, a_{NM}$ ($1 \le a_j \le NM$)이 주어집니다.
출력
각 $k$ ($1$부터 $N$까지)에 대해, $s_k$의 가능한 최솟값을 공백으로 구분된 정수 수열로 한 줄에 하나씩 출력하십시오.
예제
예제 입력 1
4 3 1 1 2 2 3 3 4 4 5 5 6 6
예제 출력 1
1 1 2 1 2 3 2 2 3 2 3 4
예제 입력 2
3 4 12 4 4 4 1 1 4 4 6 4 1 4
예제 출력 2
1 1 1 4 1 4 4 4 1 4 4 12
예제 입력 3
4 5 12 7 17 3 6 11 9 2 17 7 1 6 9 12 6 3 9 12 2 15
예제 출력 3
1 2 2 3 3 2 2 3 3 6 2 3 6 7 7 3 3 6 6 6
예제 입력 4
1 1 1
예제 출력 4
1
참고
첫 번째 예제에서, 각 $s_k$를 최소화하는 단어 선택은 다음과 같습니다:
단어 $112, 233, 445, 566$을 선택하면 $s = 112, 233, 445, 566$이 되어 $s_1 = 112$가 됩니다.
단어 $123, 456, 123, 456$을 선택하면 $s = 123, 123, 456, 456$이 되어 $s_2 = 123$이 됩니다.
단어 $166, 155, 344, 223$을 선택하면 $s = 155, 166, 223, 344$가 되어 $s_3 = 223$이 됩니다.
단어 $234, 234, 156, 156$을 선택하면 $s = 156, 156, 234, 234$이 되어 $s_4 = 234$가 됩니다.
이 모든 경우에서 각 $s_k$를 사전순으로 더 작게 만들 방법은 없음을 보일 수 있습니다.