ЕЛуминати
Логото за брендирање на секоја фирма е, како и секоја друга слика, матрица со димензии N * M.
„L-елемент“ претставува секоја конфигурација од црвени полиња од матрицата која личи на буквата L, т.е. тоа е црвено поле во матрицата до кое десно од него во истиот ред има барем уште едно црвено поле, и над него во истата колона има барем уште едно црвено поле.
Новото лого на една компанија се состои од сина позадина и одредени исцртани елементи во други бои (но ја нема црвената боја). Авторот на логото, Емил, сака да си додаде 3 „L-елементи“ во логото како скриена порака. Секој L-елемент мора да биде целосно во матрицата, L-елементите не смеат да се поклопуваат или пресекуваат меѓу себе и мора да се целосно позиционирани врз сините делови од логото (т.е. да не ги покриваат исцртаните елементи од логото).
Ако на влез ви е дадено логото, така што секое поле од матрицата со сина боја е претставено со ".", а секое поле со исцртани елементи со "#", ваша задача е да пресметате на колку различни начини може да се постават 3-те L-елементи (секако, само врз полиња означени со ".").
Влез
Првиот ред содржи два цели броја: N (2 ≤ N ≤ 50) и M (2 ≤ M ≤ 50) – бројот на редици и бројот на колони од матрицата, соодветно.
Следните N редови содржат по M знаци, каде секој знак е или "." или "#".
Забелешка.
За 15% од поените, важи: N, M ≤ 5
За други 20% од поените важи: N = 2
За други 40% од поените важи: N, M ≤ 30
Излез
Отпечатете еден цел број – бараниот резултат.
Ограничувања
Временско ограничување: 150 milliseconds
Мемориско ограничување: 512 megabytes
Примери
влез 2 7 .#.#... ....... | излез 4 |
влез 3 5 #..#. ..#.# .#... | излез 0 |
Објаснување на првиот пример: Можни се следните 4 конфигурации (првото L е претставено со единици, второто со двојки, третото со тројки):
| 1#2#3.. | 1#2#3.. | 1#2#.3. | 1#2#.3. |
| 112233. | 1122333 | 1122.33 | 1122233 |