你正睇住一班小朋友開開心心咁玩一場友善嘅 Quartets 遊戲。某個時候,你開始懷疑有啲小朋友可能出千。小朋友自己似乎一啲都唔介意;相反,咁樣仲令佢哋玩得更開心,尤其係有人出千畀人捉到嗰陣。身為程式員,你即刻開始諗點樣只靠觀察佢哋玩就偵測到出千。
Quartets 係一種四人紙牌遊戲,用一副 $32$ 張嘅牌,分成 $8$ 組,每組 $4$ 張。實際嘅紙牌通常有教育圖片,幫玩家唔單止認識個別事物,仲學到佢哋嘅分類。例如牌面可以係動物,而唔同組對應唔同動物類別(哺乳類、爬蟲類等等)。
同組嘅四張牌,出自 Wilhelm Busch 嘅德國 Quartets 牌組,經 Wikimedia Commons 取得,屬公有領域。
遊戲開始嗰陣,每位玩家獲發 $8$ 張牌,由玩家 $1$ 開始回合。每個回合,玩家問另一位玩家有冇某張指定嘅牌。如果被問嗰位有嗰張牌,就一定要交畀問嗰位;問嗰位繼續自己嘅回合,可以向任何玩家索取另一張牌。如果被問嗰位冇嗰張牌,問嗰位嘅回合就結束,輪到被問嗰位開始回合。一條重要規則係:索牌嗰位必須已經有至少一張同所索取嘅牌同組嘅牌。
如果玩家喺自己回合入面有齊一組牌(「四張一組」),就可以展示畀其他玩家睇,放埋一邊,攞一分。呢四張牌會永久移出今場遊戲。如果任何時候有玩家手上冇晒牌,佢就離開遊戲。如果當時係佢嘅回合,就跟住玩家 $1$-$2$-$3$-$4$-$1$-$\ldots$ 嘅次序,輪到下一位仲有牌嘅玩家。如果冇玩家仲有牌,遊戲就結束,分數最高嗰位贏。
玩家唔可以索取已經移出遊戲嘅牌,亦唔可以向已經離開遊戲嘅玩家索牌。
喺 Quartets 入面,有兩種可能出千嘅情況,都係玩家假稱自己有(或者冇)某張牌。具體嚟講,以下情況就係出千:
玩家一張某組嘅牌都冇,卻索取嗰組嘅牌;或者
被問嘅玩家明明有所索取嘅牌,卻話自己冇。
唔使講,出千好多時之後先畀人發現。理論上,細心嘅對手最終可以發現任何出千,因為所有牌都會喺遊戲結束前某個時候公開。
留意,索取一張被問嗰位絕對唔可能有嘅牌(例如張牌喺索牌嗰位自己手上),雖然唔係醒目嘅做法,但呢個行為本身唔算出千。
輸入格式
輸入第一行有整數 $n$($1 \le n \le 1000$),表示一場 Quartets 由開局起連續進行嘅動作數目。之後 $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 \ne y$)係表示玩家嘅整數;$s$($1 \le s \le 8$)係一個一位數整數,對應其中一組牌;而 $k \in \{\mathrm{A},\mathrm{B},\mathrm{C},\mathrm{D}\}$ 係分辨同組四張牌嘅字元。因此牌 $sk$ 嘅標籤係 1A、1B、1C、1D、2A、2B、…、8C、8D。第一個數字相同嘅四張牌就係同一組。
畀定嘅序列描述四位玩家玩緊嘅一場有效遊戲。即係話,除咗上面兩種可能嘅出千方式,所有動作都符合全部規則。
輸出格式
如果存在一種可能嘅開局派牌方式,令動作序列對應一場所有玩家都守規則嘅遊戲(可以只係部分遊戲),就輸出 yes。否則輸出 no,再喺下一行輸出第一個動作編號,使得做完呢個動作之後可以肯定有玩家一定出過千。動作由 $1$ 開始順序編號,放埋牌組嘅動作都要計。
樣例
輸入格式 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
說明
玩家 $1$ 同 $2$ 都話冇 3C,而佢哋兩個都冇 3A 或者 3D。所以其中一個唔係謊稱冇 3C,就係喺冇 3B(第 $3$ 組唯一剩低嗰張牌)之下索取咗 3C。
輸入格式 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