Страница: << 1 2 Отображать по:
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

В игре «Руммикуб» используются фишки, которые бывают четырех различных цветов, и на каждой из которых написано одно натуральное число от 1 до 13. Для каждого числа и для каждого цвета в наборе фишек есть ровно две соответствующие фишки, т.е. всего в наборе $8\cdot 13 = 104$ фишки.

Число, написанное на фишке, будем называть ее достоинством; цвета будем обозначать латинскими буквами A, B, C и D, и каждую фишку будем обозначать, записывая сначала ее цвет, а потом — ее достоинство. Например, C12 — это фишка цвета C и достоинством 12.

Комбинацией в игре называется набор из как минимум трех фишек, удовлетворяющий любому из следующих условий:

  • Достоинства всех фишек одинаковы, а цвета — попарно различны; или
  • Цвета всех фишек одинаковы, а достоинства являются последовательными натуральными числами.

Например, следующие наборы фишек являются комбинациями:

  • C12, A12, B12;
  • C12, A12, B12, D12;
  • C5, C6, C7;
  • A3, A4, A5, A6, A7.

При этом следующие наборы не являются комбинациями:

  • A3, B3 (слишком мало фишек);
  • A3, B3, C3, D3, B3 (цвета повторяются);
  • A3, A4, A4, A5, A6 (достоинства повторяются);
  • A3, A4, A6, A7, A8 (число 5 пропущено).

Одна из основных задач в руммикубе состоит в том, чтобы данный набор фишек распределить на комбинации так, чтобы каждая фишка входила ровно в одну комбинацию. Напишите программу, которая будет это делать.

Входные данные

В первой строке входного файла находится одно натуральное число $K$ — количество фишек. Далее следуют $K$ строк, на каждой из которых находится описание одной фишки — цвет и достоинство.

Гарантируется, что эти фишки являются корректным подмножеством фишек из некоторого комплекта для игры в руммикуб; т.е. гарантируется, что каждый цвет — это латинская заглавная буква от A до D, что каждое достоинство — это натуральное число, не превосходящее 13, и что для для каждой пары (цвет, достоинство) в наборе есть не более двух таких фишек.

Выходные данные

Если данный набор фишек можно разбить на комбинации так, чтобы каждая фишка входила ровно в одну комбинацию, то в первую строку выходного файла выведите одно число $M$ — количество комбинаций в вашем решении. Далее выведите $M$ строк, в $i$-ой из которых выведите $i$-ую комбинацию. А именно, сначала выведите количество фишек в комбинации, а потом сами фишки, разделенные между собой и отделенные от количества фишек пробелами. В пределах каждой комбинации фишки можете выводить в произвольном порядке; комбинации также можете выводить в произвольном порядке.

Если есть несколько решений, выведите любое. Если решений нет, то выведите в выходной файл одно число -1.

Примеры
Входные данные
3
A2
A3
A5
Выходные данные
-1
Входные данные
3
A2
A4
A3
Выходные данные
1
3 A2 A4 A3
Входные данные
7
A12
A13
A13
B13
C13
D13
A11
Выходные данные
2
3 A11 A12 A13
4 A13 B13 C13 D13

Страница: << 1 2 Отображать по:
Выбрано
:
Отменить
|
Добавить в контест