2088 - 输出序列
Description

按升序排列打印所有满足以下条件的长度为 N 的整数序列。

- 第 i 个元素介于 1R_i 之间。

- 所有元素之和是 K 的倍数。

什么是序列的词序?满足下列条件1和2,那么序列 A = (A_1, \ldots, A_{|A|}) 在词序上**小于 B = (B_1, \ldots, B_{|B|})

1.  |A|<|B|(A_{1},\ldots,A_{|A|}) = (B_1,\ldots,B_{|A|})

2.  存在一个整数 1\leq i\leq \min\{|A|,|B|\} ,使得下面两个条件都成立:

    - (A_{1},\ldots,A_{i-1}) = (B_1,\ldots,B_{i-1})

    - A_i < B_i 


Input

第一行两个数字N和K

接下来N个数字a_i

Output

输出所有满足的词序,换行输出

Examples

Input

3 2
2 1 3

Output

1 1 2
2 1 1
2 1 3

Input

5 5
2 3 2 3 2

Output

1 1 1 1 1
1 2 2 3 2
1 3 1 3 2
1 3 2 2 2
1 3 2 3 1
2 1 2 3 2
2 2 1 3 2
2 2 2 2 2
2 2 2 3 1
2 3 1 2 2
2 3 1 3 1
2 3 2 1 2
2 3 2 2 1
Hint

- 所有输入值均为整数。

- 1 \le N \le 8

- 2 \le K \le 10

- 1 \le R_i \le 5 


题目参数
Time Limit 1 second
Memory Limit 128 MB
提交次数 10
通过次数 5