JOI 先生喜欢玩一个叫“JOIRIS”的游戏,但他玩得并不好。JOIRIS 在一个矩形棋盘上进行,棋盘由正方形格子组成。棋盘的宽度为 $N$,高度足够大。从左侧数第 $i$ 列、从下方数第 $j$ 行的格子记为 $(i, j)$。在游戏过程中,每个格子的状态要么是有方块,要么是没有方块。
JOIRIS 的游戏规则如下:
- 给定一个整数序列 $A_1, A_2, \dots, A_N$,表示游戏的初始状态。
- 初始时,在第 $i$ 列 ($1 \le i \le N$) 中,从下方数起的前 $A_i$ 个格子有方块,其余格子没有方块。换句话说,仅当 $1 \le j \le A_i$ 时,格子 $(i, j)$ 有方块。
- 玩家拥有 $10\,000$ 个矩形块。每个块都是 $1 \times K$ 的矩形。玩家重复执行以下操作:
- 首先,玩家选择矩形块的方向,可以是垂直或水平。
- 如果玩家选择垂直方向,玩家选择一个整数 $x$ ($1 \le x \le N$) 作为放置位置。然后,玩家将一块垂直放置在第 $x$ 列最上方方块的上方。换句话说,找到最大的整数 $y$,使得格子 $(x, y)$ 有方块(如果没有这样的 $y$,则取 $y = 0$),并在 $K$ 个格子 $(x, y + j)$ ($1 \le j \le K$) 上各放置一个方块。
- 如果玩家选择水平方向,玩家选择一个整数 $x$ ($1 \le x \le N - K + 1$) 作为放置位置。然后,玩家将一块水平放置在从第 $x$ 列到第 $(x + K - 1)$ 列的最上方方块的上方。换句话说,找到最大的整数 $y$,使得对于某个 $1 \le i \le K$,格子 $(x + i - 1, y)$ 有方块(如果没有这样的 $y$,则取 $y = 0$),并在 $K$ 个格子 $(x + i - 1, y + 1)$ ($1 \le i \le K$) 上各放置一个方块。
- 执行上述操作后,如果某一行中的所有 $N$ 个格子都被方块填满,该行中的所有方块将消失。然后,该行上方的每个方块都会向下移动 1 格。换句话说,如果第 $y$ 行的所有格子都被填满,则格子 $(i, j)$ ($1 \le i \le N, j \ge y$) 的状态将同时更新为格子 $(i, j + 1)$ 的状态。如果同时有多行被填满,则从下往上依次执行此操作。
JOIRIS 的目标是通过不超过 $10\,000$ 次放置方块来移除棋盘上的所有方块。由于 JOI 先生玩得不好,他不知道如何完成。你的任务是确定是否可以通过不超过 $10\,000$ 次放置方块来移除棋盘上的所有方块,如果可以,请找到一种实现方法。
输入格式
从标准输入读取以下数据:
- 第一行包含两个空格分隔的整数 $N, K$。这意味着 JOIRIS 棋盘的宽度为 $N$,矩形块的大小为 $1 \times K$。
- 接下来的 $N$ 行中的第 $i$ 行 ($1 \le i \le N$) 包含一个整数 $A_i$。这意味着在游戏的初始状态下,第 $i$ 列从下方数起有 $A_i$ 个方块,其余格子没有方块。
输出格式
如果无法通过不超过 $10\,000$ 次放置方块来移除所有方块,请输出一行 $-1$。
否则,输出包含 $X + 1$ 行,其中 $X$ 是放置方块的操作次数。
- 第一行包含整数 $X$。
- 接下来的 $X$ 行中的第 $i$ 行 ($1 \le i \le X$) 包含第 $i$ 次放置方块的信息,格式如下:
- 如果玩家垂直放置一块,输出两个空格分隔的整数:第一个整数为 $1$,第二个整数为玩家选择的 $x$。
- 如果玩家水平放置一块,输出两个空格分隔的整数:第一个整数为 $2$,第二个整数为玩家选择的 $x$。
数据范围
所有输入数据满足以下条件:
- $2 \le N \le 50$。
- $1 \le K \le N$。
- $0 \le A_i \le 50$。
- 存在某个 $i$ 使得 $A_i = 0$ ($1 \le i \le N$)。
- 存在某个 $i$ 使得 $A_i > 0$ ($1 \le i \le N$)。
子任务
子任务 1 [15 分]
满足以下条件: $K = 2$。 $N$ 是偶数。
子任务 2 [15 分]
满足以下条件: $K = 2$。 $N$ 是奇数。
子任务 3 [15 分]
- $N$ 能被 $K$ 整除。
子任务 4 [55 分]
没有额外限制。
样例
样例输入 1
4 2 1 0 1 2
样例输出 1
4 2 2 1 1 2 3 1 2
样例输入 2
3 2 2 0 1
样例输出 2
3 1 2 1 3 2 1
样例输入 3
2 2 0 1
样例输出 3
-1
样例输入 4
5 3 1 0 1 0 1
样例输出 4
9 1 4 1 5 2 1 2 1 2 2 1 1 1 2 2 3 2 3
Figure 1. Illustration of the JOIRIS game mechanics, showing block placement and row clearing.