你正在观看一群孩子玩一种名为“四重奏”(Quartets)的友好纸牌游戏,玩得很开心。某一刻,你开始怀疑其中一些孩子可能在作弊。孩子们自己对此完全不在意。恰恰相反,这给他们带来了更多的乐趣,尤其是当有人被抓到作弊时。作为一名程序员,你立刻开始思考如何通过观察他们的游戏来检测作弊。
“四重奏”是一款 4 人纸牌游戏,使用一副 32 张牌的牌组,分为 8 个系列,每个系列 4 张牌。实际的牌通常包含教育性的图片,这有助于玩家不仅学习单个物体,还能学习它们的分类。例如,牌上可能显示动物,而系列则对应各种动物类别(哺乳动物、爬行动物等)。
在“四重奏”游戏开始时,每位玩家发 8 张牌,由玩家 1 开始回合。在每一回合中,玩家向另一位玩家询问是否拥有某张特定的牌。如果被询问的玩家拥有该牌,他们必须将其交给请求者,请求者继续他们的回合,向任意玩家询问另一张牌。如果被询问的玩家没有请求的牌,请求者失去回合,被询问的玩家开始他们的回合。一条重要的规则是,请求者必须已经拥有与所询问的牌属于同一系列的至少一张牌。
如果在回合中,玩家手中凑齐了一整套(“四重奏”),玩家可以将该四重奏展示给其他玩家,将其放在一边并获得一分。该四重奏的四张牌将永久从当前游戏中移除。如果某位玩家在任何时候手中没有牌了,该玩家离开游戏。如果当时轮到该玩家的回合,回合将按顺序(玩家 1-2-3-4-1-...)传递给下一位仍有牌的玩家。如果没有玩家有牌,游戏结束,得分最高的玩家被宣布为获胜者。
玩家不允许询问已被移除出游戏的牌,也不能向已经离开游戏的玩家询问牌。
在“四重奏”游戏中,作弊可能发生在两种情况下,即玩家虚假声称拥有(或没有)某张牌。具体来说,如果出现以下情况,则视为作弊:
- 玩家在没有对应系列任何牌的情况下询问某张牌,或者
- 被询问的玩家声称没有请求的牌,但实际上他们拥有该牌。
不用说,作弊往往是在事后才被发现的。理论上,警惕的对手最终可以发现任何作弊行为,因为所有牌在游戏结束前的某个时刻最终都会被揭示。
注意,询问被询问者不可能拥有的牌(例如,因为请求者自己手中就有该牌)虽然不是明智之举,但本身并不被视为作弊。
输入格式
输入的第一行包含一个整数 $n$ ($1 \le n \le 1000$),表示一场“四重奏”游戏中从游戏开始算起的连续动作次数。接下来的 $n$ 行,每行包含一个动作的描述。每个动作由一行描述,可能是以下情况之一:
- $x$ A $y$ $sk$ yes — 玩家 $x$ 向玩家 $y$ 询问牌 $sk$,玩家 $y$ 将该牌交给玩家 $x$;
- $x$ A $y$ $sk$ no — 玩家 $x$ 向玩家 $y$ 询问牌 $sk$,玩家 $y$ 声称没有该牌,并开始他们的回合;
- $x$ Q $s$ — 玩家 $x$ 将四重奏 $s$ 放在一边。
在所有动作中,$x$ 和 $y$ ($1 \le x, y \le 4, x \neq y$) 是表示玩家的整数,$s$ ($1 \le s \le 8$) 是对应于其中一个系列/四重奏的单位数整数,$k \in \{A, B, C, D\}$ 是标识一个系列中四张牌的字符。因此,牌 $sk$ 被标记为 1A, 1B, 1C, 1D, 2A, 2B, ..., 8C, 8D。共享相同首位数字的四张牌组成一个系列。
给定的序列描述了 4 名玩家之间进行的一场有效游戏。也就是说,除了上述提到的两种作弊方式外,所有动作都满足所有规则。
输出格式
如果存在一种可能的初始发牌分布,使得动作序列对应于一场(可能是局部的)且所有玩家都遵循规则的游戏,则输出 yes。否则,输出 no,并紧跟一行,给出确定某位玩家一定作弊后的第一个动作编号。动作从 1 开始顺序编号,放置四重奏的动作也计入在内。
说明
样例 1 中,玩家 1 和玩家 2 都声称没有 3C,且他们两人都没有 3A 或 3D。所以他们中有人要么在没有 3C 上撒了谎,要么在没有 3B(系列 3 中唯一剩下的牌)的情况下询问了 3C。
样例
样例输入 1
4 1 A 2 3C no 2 A 3 3A yes 2 A 4 3D yes 2 A 1 3C no
样例输出 1
no 4
样例输入 2
6 1 A 2 3C no 2 A 3 3A yes 2 A 4 3D yes 2 A 1 3B no 1 A 4 5B yes 1 Q 5
样例输出 2
yes