この問題では、「スコーピオン」ソリティアの変種を扱う。
52枚のトランプが7つの列に配られている。各列には任意の枚数のカードを置くことができ、カードが1枚もない列(空の列と呼ぶ)があってもよい。各カードにはスート($\diamondsuit, \heartsuit, \spadesuit, \clubsuit$)とランク(昇順に A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K)がある。
各ターンにおいて、以下の操作を行うことができる:ある列の任意のカードを選び、そのカードの上にあるすべてのカードと一緒に、別の列の最も下のカードの上に移動させる(列の下部を1つのユニットとして移動する)。カードは、同じスートで、ランクがちょうど1大きいカードの上にのみ移動できる。例えば、$5\spadesuit$ は $6\spadesuit$ の上にのみ移動でき、$A\heartsuit$ は $2\heartsuit$ の上にのみ移動できる(下の図を参照)。もし選んだカードのランクが K である場合、そのカード(およびその上にあるすべてのカード)は、空の列にのみ移動できる。ただし、そのカードが列の先頭(一番上)にある場合は移動できない。
ゲームの目的は、キングからエースまでのスートの並びを4つの列に構築することである(Kが列の先頭、Aが末尾となる)。
入力
7行が与えられ、$i$ 行目は $i$ 番目の列を表す。各行は、その列のカード枚数 $k_i$ ($0 \le k_i \le 52$) で始まり、続いて上から順に $k_i$ 個の2文字の文字列がカードを表す。最初の文字はランク(A, 2, 3, 4, 5, 6, 7, 8, 9, T, J, Q, K)を、2番目の文字はスート(D, H, S, C はそれぞれ $\diamondsuit, \heartsuit, \spadesuit, \clubsuit$ に対応)を表す。
入力データには52枚のカードがすべて含まれており、それぞれがちょうど1回ずつ出現することが保証されている。
出力
ゲームに勝つことが不可能な場合は「NO」と出力せよ。可能な場合は、1行目に「YES」、2行目に移動回数、3行目に移動したカードを順に出力せよ。複数の解が存在する場合は、そのうちのいずれかを出力すればよい。
入出力例
入出力例 1
14 KD QD JD TD 9D 8D 7D 6D 5D 4D 3D 2D AD KH 12 AS 6C 5C 4C 3C 2C AC 6S 5S 4S 3S 2S 11 KS QS JS TS 9S 8S 7S 5H 4H 3H 2H 1 KC 0 11 8H 7H 6H QC JC TC 9C 8C 7C QH JH 3 AH TH 9H
YES 10 QH 6C AS KH AH QC 5H 6S TH 8H
入出力例 2
5 JH TH 9H JC AH 2 KH QH 6 6H 2C AC KD 8H 7H 6 QD JD 4H 3H KC QC 10 3S 2S AS 8S 7S 6S 5S 4S QS JS 12 3C TC 9C 8C 7C 6C 5C 4C KS TS 9S 2H 11 TD 9D 8D 7D 6D 5D 4D 3D 2D AD 5H
YES 20 JH KD 6H KS JC 8H QD KC 2H TS QS 8S 3S AH TC 3C 2C 5H 4H TD