AT_panasonic2020_d String Equivalence

Description

[problemUrl]: https://atcoder.jp/contests/panasonic2020/tasks/panasonic2020_d この問題では、英小文字からなる文字列のみを考えます。 文字列 $ s,\ t $ は以下の条件を満たすとき **同型** であるといいます。 - $ |s|\ =\ |t| $ である。 - 任意の $ i,\ j $ に対し次のいずれかが成立する。 - $ s_i\ =\ s_j $ かつ $ t_i\ =\ t_j $ - $ s_i\ \neq\ s_j $ かつ $ t_i\ \neq\ t_j $ たとえば、`abcac` と `zyxzx` は同型ですが、`abcac` と `ppppp` は同型ではありません。 文字列 $ s $ は以下の条件を満たすとき **標準形** であるといいます。 - 任意の $ s $ と同型な文字列 $ t $ に対し、$ s\ \leq\ t $ が成立する。ただしここで $ \leq $ は辞書順での比較を表す。 たとえば、`abcac` は標準形ですが、`zyxzx` はそれより辞書順で小さい `abcac` と同型のため標準形ではありません。 整数 $ N $ が与えられます。 長さ $ N $ の標準形の文字列を全て、辞書順で昇順で出力してください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $

Output Format

長さ $ N $ の標準形の文字列が $ K $ 個あり、辞書順で $ w_1,\ \ldots,\ w_K $ であるとする。 このとき以下の形式で出力せよ。 > $ w_1 $ $ : $ $ w_K $

Explanation/Hint

### 制約 - $ 1\ \leq\ N\ \leq\ 10 $ - 入力は全て整数である。