Busy Beaver は言語学の授業のために新しい言語を作っています!彼はすでに、言語のアルファベットを整数 $1, \dots, NM$ の順にすることを決めました。今、彼はその言語のための単語をいくつか作ろうとしています。
Busy Beaver は統計に興味があるため、単語に出現する文字の頻度を制御したいと考えています。そこで彼は、アルファベットからサイズ $NM$ の文字の多重集合 $a$ を選びました。彼は今、$M$ 文字からなる $N$ 個の単語を形成します。このとき、多重集合 $a$ に含まれる各文字はちょうど一度ずつ使用されます(つまり、ある文字 $x$ が $a$ に $k$ 回出現する場合、その文字は $N$ 個の単語全体で合計 $k$ 回使用されます)。
単語を形成した後、Busy Beaver はそれらを辞書順に並べ替えて、単語の列 $s_1, \dots, s_N$ を作る予定です。Busy Beaver は辞書順で小さい文字列を好むため、各 $k$ ($1$ から $N$ まで) について、$s_k$ の辞書順最小値を求めたいと考えています。
各 $s_k$ に対する答えは独立であることに注意してください。例えば、$s_1$ を最小化するための単語の選び方は、$s_2$ を最小化するための選び方とは異なる場合があります。
入力
1 行目には、2 つの正の整数 $N, M$ ($1 \le NM \le 10^6$) が含まれます。 2 行目には、多重集合 $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$ をこれより辞書順で小さくするような単語の選び方は存在しないことが示せます。