eolymp
bolt
Try our new interface for solving problems
Problems

Преферанс

Преферанс

В новой колоде \textbf{32} карты для преферанса расположены в следующем порядке (сверху вниз): червы, бубны, трефы, пики. В каждой масти сначала лежит семерка, под ней - восьмерка, затем девятка, десятка, валет, дама, король, туз. Тасовка карт осуществляется так: \textbf{16} карт, составляющих верхнюю половину колоды, распределяются между картами нижней половины колоды. Каждая карта верхней половины вставляется в нижнюю колоду так, что в получившейся колоде карты верхней половины идут в том же порядке, в котором они были изначально. Любое число карт верхней половины можно располагать как над верхней, так и под нижней картой второй половины колоды, а также между любыми двумя соседними картами нижней половины колоды. Такие действия повторяются не более пяти раз. Требуется написать программу, которая указывает, как надо осуществить тасовку, чтобы в итоге получить заранее заданное расположение карт. \InputFile Единственная строка входного файла содержит информацию о порядке карт, в котором они должны оказаться после тасовки. Карты перечислены сверху вниз. Каждая карта обозначается латинской буквой, указывающей масть (пики - \textbf{S}, трефы - \textbf{C}, бубны - \textbf{D}, червы - \textbf{H}), и номиналом (туз - \textbf{A}, король - \textbf{K}, дама - \textbf{Q}, валет - \textbf{J}, десятка - \textbf{0}, остальные - в соответствии со своим значением: \textbf{9}, \textbf{8}, \textbf{7}). \OutputFile В первую строку выходного файла необходимо вывести целое число \textbf{N} (\textbf{0} ≤ \textbf{N} ≤ \textbf{5}) - количество шагов тасовки. Следующие \textbf{N} строк должны содержать информацию о каждом шаге тасовки. Каждая строка при этом должна содержать \textbf{16} чисел, указывающих номера позиций, на которых оказываются снятые карты. Номера позиций выводятся в порядке возрастания и разделены пробелами. Нумерация позиций производится сверху вниз от \textbf{1} до \textbf{32}. В примере входная строка возможно для удобства разбита на две. Во входных файлах при тестировании задачи будет ровно одна строка, завершенная переводом строки.
Time limit 1 second
Memory limit 64 MiB
Input example #1
C7 H7 C8 H8 C9 H9 C0 H0 S7 D7 S8 D8 S9 D9 S0 D0 SJ DJ SQ DQ SK DK SA DA CJ HJ CQ HQ CK HK CA HA
Output example #1
5
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32
1 2 5 6 9 10 13 14 19 20 23 24 27 28 31 32
1 2 3 4 9 10 11 12 17 18 19 20 25 26 27 28
1 2 5 6 9 10 13 14 17 18 21 22 25 26 29 30
1 2 5 6 9 10 13 14 17 18 21 22 25 26 29 30

Example description: Для удобства просмотра пример входных данных приведён в 2 строки, а не в одной. Во входном файле все данные в действительности находятся в одной строке.