이 문제에서는 스콜피온(Scorpion) 솔리테어의 변형을 다룹니다.
52장의 카드로 구성된 덱이 7개의 열로 나뉘어 있습니다. 각 열에는 임의 개수의 카드가 있을 수 있으며, 카드가 없는 열도 존재할 수 있습니다(이러한 열을 빈 열이라고 부릅니다). 각 카드는 무늬($\diamondsuit, \heartsuit, \spadesuit, \clubsuit$)와 숫자(오름차순: A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K)를 가집니다.
매 턴마다 다음 동작을 수행할 수 있습니다. 어떤 열의 특정 카드를 선택하여(아무 카드나 선택 가능) 다른 열의 맨 아래 카드 위로 옮깁니다. 이때 선택한 카드 위에 놓인 모든 카드도 함께 이동합니다(열의 하단부를 하나의 단위로 이동). 카드는 같은 무늬이면서 숫자가 정확히 1 큰 카드 위로만 옮길 수 있습니다. 예를 들어, $5\spadesuit$는 $6\spadesuit$ 위로만 옮길 수 있고, $A\heartsuit$는 $2\heartsuit$ 위로만 옮길 수 있습니다. 만약 선택한 카드의 숫자가 K라면, 빈 열로만 옮길 수 있으며(그 위에 놓인 모든 카드와 함께), 이 동작은 해당 카드가 열의 맨 위가 아닌 다른 카드 위에 놓여 있을 때만 가능합니다.
게임의 목표는 킹부터 에이스까지의 무늬별 시퀀스로 이루어진 4개의 열을 만드는 것입니다(K가 열의 맨 위, A가 맨 아래에 위치).
입력
7개의 줄이 주어지며, $i$번째 줄은 $i$번째 열을 설명합니다. 각 줄은 해당 열의 카드 개수를 나타내는 정수 $k_i$ ($0 \le k_i \le 52$)로 시작하며, 이어서 $i$번째 열의 맨 위부터 맨 아래까지의 카드를 설명하는 $k_i$개의 두 글자 문자열이 주어집니다. 첫 번째 문자는 숫자("A", "2", "3", "4", "5", "6", "7", "8", "9", "T", "J", "Q", "K"는 각각 A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K를 의미)를 나타내고, 두 번째 문자는 무늬("D", "H", "S", "C"는 각각 $\diamondsuit, \heartsuit, \spadesuit, \clubsuit$를 의미)를 나타냅니다.
입력 데이터에는 52장의 카드가 모두 포함되어 있으며, 각 카드는 정확히 한 번씩 등장함이 보장됩니다.
출력
게임을 이길 수 없다면 "NO"를 출력합니다. 그렇지 않으면 첫 번째 줄에 "YES", 두 번째 줄에 이동 횟수, 세 번째 줄에 이동 순서대로 카드들을 출력합니다. 여러 해결 방법이 있다면 그중 아무거나 출력해도 됩니다.
예제
입력 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
출력 1
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
출력 2
YES 20 JH KD 6H KS JC 8H QD KC 2H TS QS 8S 3S AH TC 3C 2C 5H 4H TD