Bajtazar 经营着一家化学实验室。实验室里存放着 $n$ 种化学物质,编号从 $1$ 到 $n$,其中第 $i$ 种物质有 $a_i$ 字节升。
Bajtazar 购买了 $n$ 个新容器,他想把所有物质都装进这些容器里。每个容器的容量为 $k$ 字节升,每个容器最多可以存放两种物质。换句话说,一个容器内可以存放总量不超过 $k$ 字节升的同一种物质,或者存放总量不超过 $k$ 字节升的两种不同物质(每种物质的量不限)。每种物质都可以任意拆分并放入任意数量的容器中。请帮助 Bajtazar 将这些物质分配到容器中,或者判断这是否不可能。
输入格式
输入的第一行包含两个整数 $n$ 和 $k$ ($1 \le n \le 1\,000\,000$, $1 \le k \le 10^{12}$),分别表示物质的数量(也是容器的数量)以及每个容器的容量(单位为字节升)。接下来的 $n$ 行描述了这些物质:第 $i$ 行包含一个整数 $a_i$ ($1 \le a_i \le 10^{12}$),表示第 $i$ 种物质的量(单位为字节升)。
输出格式
第一行输出一个单词 TAK 或 NIE,表示是否可能按照题目要求分配物质。
如果答案是 TAK,则需要描述一种将物质分配到容器中的方案,使得每个容器中最多存放两份物质,且总容量不超过 $k$ 字节升。接下来的 $n$ 行应描述这种分配方案。第 $i$ 行应描述第 $i$ 个容器的内容:第一个整数 $m_i$ ($0 \le m_i \le 2$) 表示放入第 $i$ 个容器的物质份数。随后是 $m_i$ 对整数;每对整数中,第一个数是物质编号,第二个数是放入该容器的该物质的量(字节升)。
如果 $m_i = 2$,这两份物质可以是不同的物质,也可以是同一种物质的两份。此外,允许在容器中放入 $0$ 字节升的物质(尽管在这种情况下,也可以给出 $m_i$ 更小的答案)。
样例
输入 1
5 6 1 11 3 4 2
输出 1
TAK 2 4 4 2 2 2 5 2 2 3 1 2 6 0 2 1 1 3 3
说明 1
在第一个容器中,我们放入了全部的第 $4$ 号物质($4$ 字节升)和 $2$ 字节升的第 $2$ 号物质,刚好填满容器。在第二个容器中,我们放入了全部的第 $5$ 号物质($2$ 字节升)和 $3$ 字节升的第 $2$ 号物质,留出了一些空余空间。第三个容器装入了剩余的第 $2$ 号物质($6$ 字节升)。第四个容器保持为空。在第五个容器中,我们放入了第 $1$ 号和第 $3$ 号物质。
输入 2
2 10 20 1
输出 2
NIE
说明 2
物质无法装入容器:仅第一种物质就会填满两个容器,导致没有空间存放第二种物质。
子任务
测试集分为以下子任务。每个子任务的测试用例由一组或多组独立的测试数据组成。
| 子任务 | 限制 | 分数 |
|---|---|---|
| 1 | $a_i > k$ 的物质最多只有一种 | 9 |
| 2 | $a_i > k$ 的物质最多只有两种 | 24 |
| 3 | $n, k \le 6$ | 15 |
| 4 | $n \le 100$ | 21 |
| 5 | 无额外限制 | 31 |