Farmer John chce bardziej udekorować dom. W sklepie z porcelaną znajduje delikatną szklaną figurkę krowy i chce ją kupić na półkę nad kominkiem.
Kształt to siatka $N \times M$ znaków ($3 \leq N, M \leq 500$), jak poniżej. Małe litery są częściami figurki w różnych kolorach, a . nimi nie są.
............... ............... x..x........... xxxx........... xxxxaaaaaaa... .xx.aaaaaaaaa.. ....aaaaaaa.aa. ....ll...ll.... ....vv...vv.... ...............
Tuż przed zakupem byk przebiega przez sklep, rozbijając figurkę i wiele innych szklanych rzeczy na półkach! Figurka rozpada się na 3 części, zagubione wśród $K$ części na podłodze ($4 \leq K \leq 100$). Każda z $K$ części jest opisana siatką jak oryginał.
Policz zestawy 3 części z tych $K$, które można skleić w oryginalną figurkę.
Części mogły zostać odbite pionowo lub poziomo albo obrócone o wielokrotność 90 stopni. Mając oryginał i $K$ siatek, szukaj zestawów 3 tworzących oryginalny obraz przy przesunięciach, odbiciach i obrotach o wielokrotności 90 stopni. Nałożone części muszą dokładnie tworzyć oryginał, a każda jego kolorowa kratka ma należeć do dokładnie jednej części.
Wejście
Pierwszy wiersz zawiera $K$. Dalej jest $K + 1$ opisów: pierwszy oryginału, kolejne $K$ rozbitych części.
Opis zaczyna się liczbami $R$ i $C$ ($1 \le R, C \le 100$). Kolejne $R$ wierszy ma po $C$ małych liter opisujących kolory. Każda część jest spójna poprzez sąsiedztwo poziome lub pionowe i ma co najmniej jedną niepustą kratkę.
Wyjście
Wypisz liczbę trójek $i, j, k$ ($i < j < k$), dla których części $i$, $j$ i $k$ mogą utworzyć oryginalną krowę.
Przykład
Wejście 1
5 5 5 aaaaa ..a.. bbabb ..a.. aaaaa 3 5 ..abb ..a.. aaaaa 5 2 a. a. aa a. a. 1 2 bb 1 5 bbabb 2 5 aaaaa ..a..
Wyjście 1
3
Uwagi
Trzy rozwiązania używają $(0, 1, 2)$, $(0, 2, 4)$ i $(1, 3, 4)$.
Limit czasu to 6 sekund na przypadek testowy i dwa razy tyle dla Java i Python.
Autor zadania: Brian Dean