loj#P6934. 「ICPC World Finals 2022 | 2023」变成红灯

「ICPC World Finals 2022 | 2023」变成红灯

题目描述

Mei 的父母去年一年都在重新设计如何装修房子,但是他们的照明系统十分复杂!房子中每个房间都有一盏 LED 灯,灯可以设成红色,绿色或蓝色,如图 G.1 所示。

turningred.png

图 G.1. 样例 1 中灯的初始状态。按钮和导线没有画出。

房子里到处都有各种按钮,每个按钮都与一盏或多盏灯相连。按下一个按钮后,与该按钮相连的红灯会变成绿灯,绿灯会变成蓝灯,蓝灯会变成红灯。每个按钮都可以多次按下。由于房屋建造于多路开关布线发明之前,每盏灯最多只由两个按钮控制。

Mei 最喜欢的颜色是红色,所以她想把所有的灯都变成红色。她的父母担心按钮会磨损,要求她尽量减少按下按钮的次数。

输入格式

第一行两个整数 llbb,其中 ll1l21051\le l\le 2\cdot 10^5)是灯的数量,bb0b2l0\le b\le 2\cdot l)是按钮数量。输入第二行是一个长为 ll 的字符串,字符串中的字符是 RGB 中的一个,其中第 ii 个字符表示第 ii 盏灯的初始颜色。接下来 bb 行描述按钮。每行开始于一个整数 kk1kl1\le k\le l),表示这个按钮控制的灯的数量。接下来 kk 个互不相同的整数,表示这个按钮控制的灯。灯从 11ll 编号(包括两端)。在所有按钮中,每盏灯最多出现两次。

输出格式

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

8 6
GBRBRRRG
2 1 4
1 2
4 4 5 6 7
3 5 6 7
1 8
1 8

8

4 3
RGBR
2 1 2
2 2 3
2 3 4

impossible

4 4
GBRG
2 1 2
2 2 3
2 3 4
1 4

6

3 3
RGB
1 1
1 2
1 3

3