AT_arc047_c [ARC047C] N!÷K番目の単語

Description

[problemUrl]: https://atcoder.jp/contests/arc047/tasks/arc047_c 高橋語には $ N $ 種類の文字があります。 この問題では便宜上、各文字に辞書順で小さい順に $ 1 $ ~ $ N $ の整数を割り振って扱うことにします。 高橋語の単語は全て $ N $ 文字からなり、$ N $ 種類の文字が全てちょうど $ 1 $ 個ずつ含まれます。 また、そのような文字列は全て高橋語の単語です。 つまり、高橋語の単語は $ N! $ 個あります。 ある $ N $ 以下の正の整数 $ K $ が与えられるので、高橋語の単語の中で辞書順で小さい方から $ N!\ ÷\ K $ 番目の単語を求めてください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ K $ - $ 1 $ 行目には $ 2 $ つの整数 $ N,\ K(1\ ≦\ K\ ≦\ N\ ≦\ 10^5) $ が空白区切りで与えられます。

Output Format

出力は $ N $ 行からなる。 $ i $ 行目には高橋語の単語の中で辞書順で小さい方から $ N!\ ÷\ K $ 番目の単語の $ i $ 文字目の文字に対応する整数を出力せよ。 出力の末尾に改行を入れること。

Explanation/Hint

### 部分点 この問題には部分点が設定されている。 - $ 1\ ≦\ N\ ≦\ 20 $ を満たすデータセットに正解した場合は $ 30 $ 点が与えられる。 - $ 1\ ≦\ N\ ≦\ 10^5 $ を満たすデータセットに正解した場合はさらに $ 70 $ 点が与えられる。合計で$ 100 $点となる。 ### Sample Explanation 1 $ 1,2,3,4 $ の並び替えのうち、辞書順で小さい方から $ 4!\ ÷\ 3\ =\ 8 $ 番目の文字を出力しなければなりません。 高橋語の単語のうち辞書順で小さい方から順に $ 8 $ 個を列挙すると $ 1,\ 2,\ 3,\ 4 $ $ 1,\ 2,\ 4,\ 3 $ $ 1,\ 3,\ 2,\ 4 $ $ 1,\ 3,\ 4,\ 2 $ $ 1,\ 4,\ 2,\ 3 $ $ 1,\ 4,\ 3,\ 2 $ $ 2,\ 1,\ 3,\ 4 $ $ 2,\ 1,\ 4,\ 3 $ となります。よって $ 2,\ 1,\ 4,\ 3 $が求めるべき単語です。