AT_abc367_c [ABC367C] Enumerate Sequences

Description

[problemUrl]: https://atcoder.jp/contests/abc367/tasks/abc367_c 以下の条件を満たす長さ $ N $ の整数列を辞書順で小さい方から順に全て出力して下さい。 - $ i $ 番目の要素は $ 1 $ 以上 $ R_i $ 以下 - 総和が $ K $ の倍数 数列の辞書順とは? 数列 $ A\ =\ (A_1,\ \ldots,\ A_{|A|}) $ が $ B\ =\ (B_1,\ \ldots,\ B_{|B|}) $ より**辞書順で真に小さい**とは、下記の 1. と 2. のどちらかが成り立つことを言います。 1. $ |A|\ かつ\ (A_{1},\ldots,A_{|A|})\ =\ (B_1,\ldots,B_{|A|}) $ である。 2. ある整数 $ 1\leq\ i\leq\ \min\{|A|,|B|\} $ が存在して、下記の $ 2 $ つがともに成り立つ。 - $ (A_{1},\ldots,A_{i-1})\ =\ (B_1,\ldots,B_{i-1}) $ - $ A_i $

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ K $ $ R_1 $ $ R_2 $ $ \dots $ $ R_N $

Output Format

出力すべき数列が $ X $ 個あり、そのうち $ i $ 個目が $ A_i=(A_{i,1},A_{i,2},\dots,A_{i,N}) $ であったとき、答えを以下の形式で出力せよ。 > $ A_{1,1} $ $ A_{1,2} $ $ \dots $ $ A_{1,N} $ $ A_{2,1} $ $ A_{2,2} $ $ \dots $ $ A_{2,N} $ $ \vdots $ $ A_{X,1} $ $ A_{X,2} $ $ \dots $ $ A_{X,N} $

Explanation/Hint

### 制約 - 入力は全て整数 - $ 1\ \le\ N\ \le\ 8 $ - $ 2\ \le\ K\ \le\ 10 $ - $ 1\ \le\ R_i\ \le\ 5 $ ### Sample Explanation 1 出力すべき数列は $ 3 $ 個で、辞書順で $ (1,1,2),(2,1,1),(2,1,3) $ です。 ### Sample Explanation 2 出力すべき数列が無い場合もあります。 この場合、出力は空で構いません。