В игре «Руммикуб» используются фишки, которые бывают четырех различных цветов, и на каждой из которых написано одно натуральное число от 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 пропущено).
Одна из основных задач в руммикубе состоит в том, чтобы данный набор фишек распределить на комбинации так, чтобы каждая фишка входила ровно в одну комбинацию. Напишите программу, которая будет это делать.
Выходные данные
Если данный набор фишек можно разбить на комбинации так, чтобы каждая фишка входила ровно в одну комбинацию, то в первую строку выходного файла выведите одно число \(M\) — количество комбинаций в вашем решении. Далее выведите \(M\) строк, в \(i\)-ой из которых выведите \(i\)-ую комбинацию. А именно, сначала выведите количество фишек в комбинации, а потом сами фишки, разделенные между собой и отделенные от количества фишек пробелами. В пределах каждой комбинации фишки можете выводить в произвольном порядке; комбинации также можете выводить в произвольном порядке.
Если есть несколько решений, выведите любое. Если решений нет, то выведите в выходной файл одно число -1.