벽돌 칸으로 구분된 창문들의 격자에서, 90도 회전을 같은 디자인으로 볼 때 서로 다른 디자인의 개수를 센다.
보통4구현행렬문자열해시맵아직 제출이 없습니다시간 제한1초메모리 제한512 MB크기가 같은 창문이 행과 열을 맞춰 늘어선 건물 사진을 한 장 찍었다. 몇몇 창문에는 독특한 무늬가 칠해져 있다. 사진을 분석해서 서로 다른 무늬가 몇 가지인지 세려고 한다.
사진은 r행 c열의 문자 격자로 나타낸다. 창문은 모두 직사각형이고 크기가 같다. 창문 안의 각 칸은 비어 있거나(문자 .) 칠해져 있다(문자 +). 한쪽 창문을 90도의 배수만큼 회전해서 다른 쪽 위에 올렸을 때 완전히 겹치면 두 창문은 같은 무늬다. 무늬를 비교할 때 창문을 뒤집는 것은 허용하지 않는다.
창문은 모두 벽돌 칸(문자 #) 한 줄로 둘러싸여 있다. 이웃한 두 창문 행 사이, 첫 창문 행 위, 마지막 창문 행 아래에 #으로만 이루어진 행이 정확히 하나씩 있다. 같은 방식으로 이웃한 두 창문 열 사이, 첫 창문 열 왼쪽, 마지막 창문 열 오른쪽에 #으로만 이루어진 열이 정확히 하나씩 있다. 창문 행의 개수와 창문 열의 개수는 정해져 있지 않고, 창문의 크기도 정해져 있지 않다. 다만 창문은 적어도 한 칸으로 이루어지고, 사진 안의 창문은 모두 크기가 같다.
사진에 서로 다른 창문 무늬가 몇 가지 있는지 구하시오.
첫째 줄에 사진의 행 개수 r과 열 개수 c가 주어진다 (3≤r,c≤111).
다음 r개 줄에는 각각 c개의 문자로 이루어진 문자열이 주어진다. 사진의 한 행을 나타낸다.
사진에 있는 서로 다른 창문 무늬의 개수를 한 줄에 출력한다.