Розкладування Пасьянса
"N-T пасьянс" - карточна гра для одного гравця. У грі використовується 4*N (3 ≤ N ≤ 15) карт, причому кожній карті відповідає унікальна пара її значення (ціле число у діапазоні 1..N та масті (, , або ). У початковому положенні усі карты розкладено у T (4 ≤ MT ≤ 12) стопок; при цьому кожна з перших (4*N)%T стопок містить по (4*N/T)+1 карт, інші - по 4*N/T карт (тут "/" та "%" - цілочисельне ділення та залишок при діленні відповідно). Якщо сума значень верхніх карт двох стопок дорівнює N +1, то ці дві карти можна перемістити у відбій (незалежно від їхніх мастей). Це єдиний спосіб переміщувати карти.
Напишіть програму, яка буде визначати, яку максимальну кількість карт можна перемістити у відбій і як це зробити.
Вхідні дані
Перший рядок містить два цілих числа N та T, далі йде T рядків з описами карт відповідної стопки. Кожна карта описується її значенням (ціле число) та мастю (символ з ASCII-кодом 03(), 04(), 05(), або 06()) без пропуска між ними. Описи різних карт однієї стопки розділені рівно одним пропуском, напрямок опису зліва направо відповідає порядку карт знизу вверх.
Приклад вхідних даних
Вихідні дані
Ваша програма повинна вивести ціле число S - максимально можливу кількість карт, які можна перемістити у відбій. Потім S/2 пар чисел, по парі у рядку - номери стопок, з яких потрібно знімати карти на черговому ході.
Примітка: Якщо існує декілька способів розкладування (з однаковою максимальною сумарною кількістю знятих карт), виведіть довільний.