QuadraPop — аркадная 2D игра, в которой вам нужно набирать очки, уничтожая клетки на поле. В этой задаче рассматривается более общий вариант игры, поэтому опишем правила подробнее.
У вас имеется поле в H строк и W столбцов. Каждая ячейка поля либо пуста, либо занята клеткой определённого цвета. Всего цветов 26 и они обозначены заглавными латинским буквами. На поле действует гравитация — клетка, под которой нет опоры, падает сверху вниз. Так же в игре есть параметр K — если существует связная область из K или более клеток одного цвета, то они уничтожаются. Связными считаются клетки, которые граничат стороной. После уничтожения области может снова начаться процесс падения клеток, который в конце снова спровоцирует уничтожение новых областей и так далее.
Вам дано поле и фигурка из двух клеток, которую нужно расположить вверху поля в любой клетке. Фигурку можно произвольно повернуть. Посчитайте все возможные различные исходы получения очков, которые можно получить. Очки начисляются следующим образом. Выпишем в хронологическом порядке все размеры уничтоженных за время игры областей, обозначим их sk (1 ≤ k ≤ n). Если две области уничтожились в один и тот же момент, раньше в списке идёт та область, у которой верхняя левая клетка находится выше (если и они на одной высоте, то та, которая из этих двух левее). Итоговый счёт игрока равен
. Рассмотрите описание тестового примера для лучшего понимания.
В первой строке содержатся числа H, W и K, записанные через пробел (2 ≤ H ≤ 50; 1 ≤ W ≤ 50; 2 ≤ K ≤ 5000). В следующих H строках идёт описание поля. Каждая строка содержит W символов. Пустая ячейка обозначается символом «.», закрашенная — большой латинской буквой. В последней строке содержится падающая фигура (два больших латинских символа). Гарантируется, что две верхние строки поля пусты, что связные фигуры из клеток одного цвета имеют размер меньше K, а так же то, что нет падающих клеток.
Выведите в одной строке, разделяя пробелами, все возможные различные исходы получения очков, упорядоченные по возрастанию.
4 4 3
....
....
....
A.AA
AA
3 4 5
3 4 3
....
....
ABCD
CB
0
7 5 4
.....
.....
.....
....X
...XX
...AB
XXXCD
XX
5 8 12
7 5 3
.....
.....
..B..
A.B.A
C.C.C
ACBCA
ACBCA
CC
0 22 23 34
Рассмотрим как получить 34 очка в четвёртом тестовом примере:
| Шаг №1 | Шаг №2 | Шаг №3 | Шаг №4 | Шаг №5 | Шаг №6 | Шаг №7 | Шаг №8 |
| .CC.. | ..... | ..... | ..... | ..... | ..... | ..... | ..... |
| ..... | ..С.. | ..С.. | ..... | ..... | ..... | ..... | ..... |
| ..B.. | ..B.. | ..B.. | ..С.. | ..С.. | ..С.. | ..... | ..... |
| A.B.A | A.B.A | A.B.A | ..B.A | ....A | ....A | ....A | ....A |
| C.C.C | CCC.C | ....C | A.B.C | A...C | ....C | ....C | ....C |
| ACBCA | ACBCA | A.BCA | A.BCA | A..CA | ...CA | ...CA | ....A |
| ACBCA | ACBCA | A.BCA | A.BCA | A..CA | ...CA | ..CCA | ....A |
| Name |
|---|


