Farmer John quer decorar melhor a casa. Em uma loja de porcelana encontra uma delicada estatueta de vaca de vidro e decide comprá-la para a prateleira sobre a lareira.
A forma é uma grade de $N \times M$ caracteres ($3 \leq N, M \leq 500$), como abaixo. Letras minúsculas são partes de cores diferentes da estatueta; . não faz parte dela.
............... ............... x..x........... xxxx........... xxxxaaaaaaa... .xx.aaaaaaaaa.. ....aaaaaaa.aa. ....ll...ll.... ....vv...vv.... ...............
Antes da compra, um touro passa pela loja e quebra a estatueta e muitos outros objetos de vidro nas prateleiras! Ela se parte em 3 peças, perdidas entre $K$ peças no chão ($4 \leq K \leq 100$). Cada uma das $K$ peças é descrita por uma grade como a original.
Conte os conjuntos de 3 peças dentre as $K$ que podem ser colados para reconstruir a estatueta.
As peças podem ter sido viradas vertical ou horizontalmente ou giradas por um múltiplo de 90 graus. Com a original e as $K$ grades, procure conjuntos de 3 que formem a imagem, permitindo translações, reflexões e rotações múltiplas de 90 graus. Sobrepostas, as 3 peças devem formar exatamente a original, com cada célula colorida representada em exatamente uma peça.
Entrada
A primeira linha contém $K$. Seguem $K + 1$ descrições: a primeira é a estatueta original e as próximas $K$ são as peças.
Cada descrição começa com $R$ e $C$ ($1 \le R, C \le 100$). As próximas $R$ linhas contêm $C$ minúsculas descrevendo as cores. Cada peça é conexa por adjacência horizontal ou vertical e tem pelo menos uma célula não vazia.
Saída
Imprima o número de triplas $i, j, k$ ($i < j < k$) em que as peças $i$, $j$ e $k$ formam a vaca original.
Exemplos
Entrada 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..
Saída 1
3
Explicação
As três soluções usam $(0, 1, 2)$, $(0, 2, 4)$ e $(1, 3, 4)$.
O limite de tempo é de 6 segundos por caso de teste e o dobro para Java e Python.
Autor: Brian Dean