P12301 [ICPC 2022/2023 WF] 变成红灯

题目描述

Mei 的父母去年一年都在重新设计如何装修房子,但是他们的照明系统十分复杂!房子中每个房间都有一盏 LED 灯,灯可以设成红色,绿色或蓝色,如图 G.1 所示。 ![](https://cdn.luogu.com.cn/upload/image_hosting/wjoki4ab.png) 图 G.1. 样例 1 中灯的初始状态。按钮和导线没有画出。 房子里到处都有各种按钮,每个按钮都与一盏或多盏灯相连。按下一个按钮后,与该按钮相连的红灯会变成绿灯,绿灯会变成蓝灯,蓝灯会变成红灯。每个按钮都可以多次按下。由于房屋建造于多路开关布线发明之前,每盏灯最多只由两个按钮控制。 Mei 最喜欢的颜色是红色,所以她想把所有的灯都变成红色。她的父母担心按钮会磨损,要求她尽量减少按下按钮的次数。

输入格式

第一行两个整数 $l$ 和 $b$,其中 $l$($1\le l\le 2\cdot 10^5$)是灯的数量,$b$($0\le b\le 2\cdot l$)是按钮数量。输入第二行是一个长为 $l$ 的字符串,字符串中的字符是 `R`,`G`,`B` 中的一个,其中第 $i$ 个字符表示第 $i$ 盏灯的初始颜色。接下来 $b$ 行描述按钮。每行开始于一个整数 $k$($1\le k\le l$),表示这个按钮控制的灯的数量。接下来 $k$ 个互不相同的整数,表示这个按钮控制的灯。灯从 $1$ 到 $l$ 编号(包括两端)。在所有按钮中,每盏灯最多出现两次。

输出格式

输出 Mei 最少要按多少次按钮才能把所有灯变为红色。如果 Mei 不可能达成目标,输出 `impossible`。