あなたは、子供たちが仲良く Quartets で遊んで楽しんでいるのを見ています。あるとき、何人かが不正をしているのではないかと疑い始めました。子供たち自身はまったく気にしていないようです。それどころか、特に誰かの不正が見つかったときには、さらに楽しんでいます。プログラマーであるあなたは、ゲームを観察するだけで不正を検出する方法をすぐに考え始めました。
Quartets は、$32$ 枚のカードを $4$ 枚ずつ $8$ 組に分けたデッキを使う、$4$ 人用のカードゲームです。実際のカードには教育的な絵が描かれることが多く、個々の物だけでなく、その分類も学べます。例えば、カードに動物が描かれ、各組が動物のさまざまな分類(哺乳類、爬虫類など)に対応することがあります。
Wilhelm Busch によるドイツの Quartets デッキの同じ組の $4$ 枚。Wikimedia Commons 経由、パブリックドメイン。
ゲームの開始時には各プレイヤーに $8$ 枚のカードが配られ、プレイヤー $1$ の手番から始まります。手番では、別のプレイヤーに特定のカードを持っているか尋ねます。尋ねられたプレイヤーがそのカードを持っていれば、要求したプレイヤーに渡さなければならず、要求したプレイヤーは手番を続けて、任意のプレイヤーに別のカードを要求します。持っていなければ、要求したプレイヤーの手番は終わり、尋ねられたプレイヤーの手番になります。重要なルールとして、要求するプレイヤーは要求するカードと同じ組のカードを少なくとも $1$ 枚すでに持っていなければなりません。
自分の手番中に同じ組の全カード(「カルテット」)を持っていれば、それを他のプレイヤーに見せて脇に置き、$1$ 点を得ることができます。その $4$ 枚は現在のゲームから永久に取り除かれます。いつでも、手持ちのカードがなくなったプレイヤーはゲームから抜けます。そのプレイヤーの手番だった場合、プレイヤー $1$-$2$-$3$-$4$-$1$-$\ldots$ の順で次にカードを持っているプレイヤーへ手番が移ります。誰もカードを持っていなければゲームが終わり、最も得点の高いプレイヤーが勝者になります。
ゲームから取り除かれたカードを要求したり、ゲームから抜けたプレイヤーにカードを要求したりすることはできません。
Quartets で不正が起こり得るのは、あるカードを持っている(または持っていない)と偽って主張する、次の $2$ つの場合です。
同じ組のカードを $1$ 枚も持っていないのに、その組のカードを要求する場合。または、
要求されたカードを持っているのに、持っていないと答える場合。
言うまでもなく、不正は後になって発覚することがよくあります。ゲームが終わる前のどこかの時点ですべてのカードが公開されるため、理論上は注意深い相手なら最終的にあらゆる不正を見抜けます。
相手が持っているはずのないカード(例えば要求した本人が持っているカード)を要求するのは賢明ではありませんが、それ自体は不正とはみなされません。
入力
入力の最初の行には整数 $n$($1 \le n \le 1000$)が含まれます。これは、ある Quartets のゲームの開始からの連続した行動の数です。続く $n$ 行には、それぞれ $1$ つの行動が記述されます。各行動は $1$ 行で表され、次のいずれかです。
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$)は組を表す $1$ 桁の整数で、$k \in \{\mathrm{A},\mathrm{B},\mathrm{C},\mathrm{D}\}$ は組の中の $4$ 枚を識別する文字です。したがってカード $sk$ には 1A、1B、1C、1D、2A、2B、…、8C、8D というラベルが付きます。先頭の数字が同じ $4$ 枚が $1$ つの組になります。
与えられる列は $4$ 人による有効なゲームを表します。すなわち、前述の $2$ 種類の不正の可能性を除けば、すべての行動はすべてのルールを満たします。
出力
すべてのプレイヤーがルールを守った(途中までかもしれない)ゲームとして行動列が成立するような最初のカードの配り方が存在すれば、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