주사위

아직 제출이 없습니다시간 제한1초메모리 제한1024 MB

문제

교준이는 NN개의 주사위 전개도가 인쇄된 큰 종이를 가지고 있다. 각 주사위의 한 변의 길이는 55이며, 3×33 \times 3 크기의 각 면에는 'x'의 눈이 그려져 있다.

정육면체의 전개도는 총 1111종류가 있다. 이 중에서 다음과 같은 주사위 전개도를 예시로 생각하자.

+---+---+---+........
|x.x|..x|...|........
|x.x|.x.|.x.|........
|x.x|x..|...|........
+---+---+---+---+---+
........|...|x.x|x.x|
........|x.x|...|.x.|
........|...|x.x|x.x|
........+---+---+---+

교준이가 이 전개도를 오려내어 접어 만든 주사위에서 점의 수가 각각 11, 22, 33인 세 면은 시계방향을 이루어 배치되어 있을 것이다. 인쇄된 점이 주사위의 바깥 면이 되도록 접어야 함에 유의하라.

교준이는 큰 종이에 인쇄된 전개도를 모두 오려내고 접어 여러 개의 주사위를 만들었다. 이 중 같은 형태의 주사위가 몇 개인지 알아내는 프로그램을 작성하라.

주사위의 마주보는 두 면의 점 수의 합이 77임이 보장되지 않으며, 심지어는 여섯 면의 모양이 모두 같은 주사위가 주어질 수 있다.

면에 그려진 점의 수가 같더라도 주사위 자체를 돌려서 점 모양이 완전하게 같아지지 않는다면 다른 주사위이다. 즉, 주사위 자체를 회전시켜서 온전하게 같아져야만 같은 주사위이다.

입력

첫 번째 줄에 두 정수 HH, WW가 주어진다. 이후, HH개의 줄에 걸쳐, 큰 종이에 그려진 전개도들이 주어진다. 각 줄에 길이 WW의 문자열이 주어지며, 이 문자열은 '.', 'x', '-', '|', '+'의 문자들로만 이루어져 있다.

출력

첫 번째 줄에, 각 형태에 대하여 그 형태를 가지는 주사위의 개수를 내림차순으로 출력한다.

제한

  • 입력으로 주어지는 전개도는 모두 올바른 전개도이다.
  • 주사위의 꼭짓점에 대응하는 문자는 모두 '+'이다.
  • 전개도의 가로 변과 세로 변에 대응하는 문자는 각각 '-', '|'이다.
  • 주사위의 점에 대응하는 문자는 'x'이며, 이 문자는 주사위의 면 내부에만 존재한다.
  • 전개도가 겹쳐서 주어지지 않는다. 단, 전개도가 붙어있을 수는 있다.
  • 적어도 하나의 전개도가 주어진다.
  • 9H1,0009 ≤ H ≤ 1\\,000
  • 9W1,0009 ≤ W ≤ 1\\,000