给定一个长度为 $N$ 的序列:$A_0, A_1, \dots, A_{N-1}$。它仅由三种整数组成:1, 2, 3。
如果下标元组 $(i, j, k)$ 满足 $0 \le i < j < k < N$ 且满足以下两个条件之一,则称其为“好”元组: $A_i = 1, A_j = 2, A_k = 3$ 或者 $A_i = 3, A_j = 2, A_k = 1$。
你的目标是找到尽可能多的不相交的好元组。如果一组元组中没有任何下标在多于一个元组中出现,则称这组元组是不相交的。
请找出不相交的好元组的最大数量,并输出每个元组。
输入格式
第一行包含一个整数 $N$,表示给定序列的长度 ($1 \le N \le 600\,000$)。 第二行包含 $N$ 个整数:$A_0, A_1, \dots, A_{N-1}$ ($1 \le A_i \le 3$)。
输出格式
第一行输出一个整数 $M$,表示不相交的好元组的最大数量。 接下来的 $M$ 行,每行输出一个元组。每行包含三个整数 $i, j, k$ ($0 \le i < j < k < N$),描述一个好元组。所有输出的元组必须是不相交的。如果存在多种方案,输出其中任意一种即可。
样例
样例输入 1
6 3 1 2 2 3 1
样例输出 1
2 1 2 4 0 3 5
样例输入 2
6 2 1 3 1 3 2
样例输出 2
0