Тетріс#3149

Тетріс

1 секунда
64 мегабайти
Дуже складна

Антон нещодавно відкрив для себе гру під назвою Tetris++, яка схожа на класичний Тетріс, але має унікальні особливості.

Правила Tetris++:

Гра відбувається на сітці висотою та шириною клітинок. На початку гри фігурка починає падати з верхнього лівого кута. Ця фігурка — вертикальний прямокутник розміром 3 \times 1, кожна клітинка якого пофарбована у певний колір.

Коли фігурка з'являється на полі, гравець може одразу пересунути її на будь-яку кількість клітинок вправо, а також циклічно підняти кольори фігурки вгору будь-яку кількість разів. Потім фігурка падає, доки не приземлиться на іншу клітинку чи не досягне дна сітки.

Після приземлення фігурки будь-яка послідовність із щонайменше клітинок одного кольору, розташована вертикально, горизонтально або по діагоналі, миттєво зникає. Усі пофарбовані клітинки над такими, що щойно зникли, одночасно опускаються вниз. Якщо після цього знову утворюються нові послідовності з або більше клітинок одного кольору, вони також зникають, і цей процес продовжується.

Мета — мінімізувати кількість пофарбованих клітинок, що залишились на полі.

Допоможіть Антону визначити, на скільки позицій пересунути фігурку вправо і скільки разів циклічно підняти її вгору, щоб на полі залишилось якнайменше пофарбованих клітинок.

Вхідні дані

У першому рядку містяться числа та , розділені пробілом (4 \leq N \leq 26, 1 \leq M \leq 15).

Кожен із наступних рядків містить чисел, розділених пробілами, які описують початковий стан ігрового поля (зверху вниз). Числа від до вказують колір відповідної клітинки, а число означає, що ця клітинка порожня.

Останні три рядки містять по одному числу, що позначають кольори (від до ) клітинок (зверху донизу) фігурки, що падає.

Гарантується, що у перших чотирьох рядках ігрового поля немає жодної пофарбованої клітинки.

Вихідні дані

Необхідно вивести числа, розділених пробілами. Перше число — це кількість клітинок, на які фігурку пересунуто вправо (від до M - 1). Друге — кількість циклічних зсувів угору (від до ). Третє — загальна кількість клітинок, що зникли в результаті падіння фігурки. Якщо існує декілька оптимальних розв'язків, оберіть той, де фігурку пересунуто вправо на меншу кількість клітинок, а якщо і таких розв'язків декілька — з найменшою кількістю циклічних зсувів.

Приклади

Приклад 1

Loading
Loading