atcoder#ARC127B. [ARC127B] Ternary Strings

[ARC127B] Ternary Strings

配点 : 500500

問題文

整数 N,LN,L が与えられます. 以下の条件をすべて満たす 3N3N 個の文字列の組 (S1,S2,,S3N)(S_1,S_2,\cdots,S_{3N}) を一つ求めてください.

  • SiS_i0, 1, 2 からなる長さ LL の文字列である.
  • SiS_i はすべて互いに異なる.
  • すべての jj (1jL1 \leq j \leq L) および c=c=0, 1, 2 について,次が成り立つ.
    • SiS_i のうち,jj 文字目が cc であるようなものはちょうど NN 個存在する.
  • SiS_i のうち,jj 文字目が cc であるようなものはちょうど NN 個存在する.
  • S1,S2,,S3NS_1,S_2,\cdots,S_{3N} の中で,辞書順で最も大きい文字列を tt で表すことにする. このときの tt は,tt としてありうる文字列の中で辞書順最小の文字列である.

制約

  • 1N5×1041 \leq N \leq 5 \times 10^4
  • 1L151 \leq L \leq 15
  • 3N3L3N \leq 3^L
  • 入力される値はすべて整数である

入力

入力は以下の形式で標準入力から与えられる.

NN LL

出力

以下の形式で答えを出力せよ.

S1S_1

S2S_2

\vdots

S3NS_{3N}

なお,条件を満たす解が複数存在する場合,どれを出力しても正解とみなされる.

2 2
00
02
11
12
20
21

この出力例はすべての条件を満たしています.

例えば,22 文字目が 0 であるような文字列は 22 個存在しています.

また,この例では t=t=21 ですが,tt がこれより辞書順で小さくなることはありません.