我们考虑以下构造图的方法。选择颜色数量 $\hat{c}$。设 $n$ 为图中顶点的数量。为了构建一个图,我们使用一个包含若干个图的工作区。每个图中的每个顶点都有一个颜色。颜色用从 $1$ 到 $\hat{c}$ 的整数表示。最初,我们在工作区中有 $n$ 个图,每个图中有一个顶点,所有顶点都涂成颜色 $1$,且没有边。第 $i$ 个图中的唯一顶点编号为 $i$。
允许进行以下操作:
join a b:将包含顶点 $a$ 和 $b$ 的图合并为一个图。不添加边。顶点 $a$ 和 $b$ 必须位于不同的图中。recolor a c1 c2:在包含顶点 $a$ 的图中,将所有颜色为 $c1$ 的顶点重新涂成颜色 $c2$。connect a c1 c2:在包含顶点 $a$ 的图中,在所有满足一个顶点颜色为 $c1$ 而另一个顶点颜色为 $c2$ 的顶点对之间创建边。如果 $c1 = c2$,则不创建自环。如果这样的边已经存在,则创建第二条平行边。本题不允许存在多重边,因此这种情况不应发生。
最后,我们应该得到一个单一的图,且其顶点的颜色无关紧要。
可用于构造图的最小颜色数量 $\hat{c}$ 称为图的团宽(clique width)。团宽是图复杂性的特征之一。许多 NP-hard 问题可以在具有有界团宽的图上,通过利用这种图构建过程进行动态规划,在多项式时间内求解。对于一般图,计算团宽的精确值被认为是 NP-hard 的。然而,对于某些图类,已知其团宽的界限。
仙人掌图(Cactus)是一种连通无向图,其中每条边最多位于一个简单环中。直观地说,仙人掌图是树的一种推广,允许存在一些环。仙人掌图中不允许存在多重边(一对顶点之间有多条边)和自环(连接顶点到自身的边)。已知仙人掌图的团宽不超过 $4$。
给定一个仙人掌图,请找出如何使用最多 $\hat{c} = 4$ 种颜色按上述方式构建它。
输入格式
输入文件的第一行包含两个整数 $n$ 和 $m$ ($1 \le n \le 50\,000$; $0 \le m \le 50\,000$)。其中 $n$ 是图中的顶点数。顶点编号从 $1$ 到 $n$。图的边由一组边不相交的路径表示,$m$ 是这些路径的数量。
接下来的 $m$ 行,每行包含图中的一条路径。路径以一个整数 $k_i$ ($2 \le k_i \le 1000$) 开头,后跟 $k_i$ 个从 $1$ 到 $n$ 的整数。这些 $k_i$ 个整数表示路径上的顶点。路径中相邻的顶点是不同的。路径可以多次经过同一个顶点,但整个输入文件中每条边恰好被遍历一次。
输入文件中的图是一个仙人掌图。
输出格式
第一行输出一个整数 $q$ —— 你需要的操作数量。该数字不应超过 $10^6$。在接下来的 $q$ 行中打印操作。每个操作由其首字母(j 表示 join,r 表示 recolor,c 表示 connect)及其参数组成,参数顺序与题目描述中的顺序一致。
最后,在执行完所有这些操作后,应该得到一个图,该图与输入中的仙人掌图相同。这意味着输入图中连接的每一对顶点之间应该恰好有一条边,而输入图中未连接的顶点之间不应有边。
样例
样例输入 1
8 2 5 1 2 3 4 7 5 4 5 6 1 8
样例输出 1
17 r 2 1 2 j 2 3 c 2 1 2 r 6 1 2 j 5 6 c 6 1 2 r 4 1 3 j 4 3 j 4 6 j 4 7 c 4 3 1 r 4 3 1 r 8 1 2 r 1 1 3 j 1 8 j 1 4 c 1 3 2
样例输入 2
15 3 9 1 2 3 4 5 6 7 8 3 7 2 9 10 11 12 13 10 5 2 14 9 15 10
样例输出 2
39 r 7 1 2 r 5 1 2 j 7 8 c 7 1 2 j 5 4 c 5 1 2 r 6 1 3 j 6 7 j 6 5 c 6 3 2 r 3 1 4 j 6 3 c 6 4 1 r 11 1 2 r 13 1 2 j 12 11 j 12 13 c 11 1 2 r 10 1 3 j 12 10 c 10 2 3 r 10 1 2 r 10 4 2 r 15 1 3 j 15 10 c 15 3 3 j 9 10 c 9 1 3 r 9 3 2 r 9 1 4 r 14 1 4 j 9 14 c 9 4 4 r 1 1 4 r 3 1 2 j 2 1 j 2 14 j 2 3 c 2 1 4