만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

요코하마 현상

면접 대비

시간 제한2초메모리 제한1024 MB

요약
격자에서 인접한 칸을 따라 문자가 Y, O, K, O, H, A, M, A 순서로 이어지는 여덟 칸의 경로 수를 셉니다.
난이도

쉬움10점 중 3점

유형
완전 탐색, 백트래킹, 행렬
정답자
아직 제출이 없습니다

문제

요코하마 현상을 아는가? 이 현상은 탁자에 둘러앉은 세 명의 프로그래머가 보드 위로 펜 하나를 함께 잡을 때 일어난다. 보드에는 격자 모양의 칸이 그려져 있고, 각 칸에는 글자 하나가 적혀 있다. 참가자 누구도 펜을 일부러 움직이지 않지만, 펜촉은 Y가 적힌 칸 하나로 내려앉은 뒤 보드 위를 움직이기 시작한다. 지나는 칸에는 차례로 O, K, O, H, A, M이 적혀 있고, 펜촉은 마지막으로 A가 적힌 칸에서 멈춘다.

펜촉이 움직인 이 칸들의 나열을 YOKOHAMA 추적이라고 부른다. YOKOHAMA 추적은 다음 조건을 만족한다.

  • 주어진 격자에서 고른 여덟 칸의 나열이다.
  • 첫 칸을 제외한 각 칸은 나열에서 바로 앞 칸과 변을 공유한다.
  • 여덟 칸에 적힌 글자는 순서대로 Y, O, K, O, H, A, M, A이다.

나열에는 같은 칸이 여러 번 나타날 수 있다.

그림 A.1 (a)는 보드를 보여 준다. 그림 A.1 (b)와 (c)는 이 보드에 있는 YOKOHAMA 추적 중 두 개의 이동 경로를 보여 준다. 두 추적 모두 맨 윗줄 가장 왼쪽 칸에서 시작한다. (c)의 추적은 O가 적힌 같은 칸을 두 번 지난다.

그림 A.1. 보드와 YOKOHAMA 추적 두 개의 이동 경로

주어진 격자의 각 칸에는 A, H, K, M, O, Y 중 하나의 글자가 적혀 있다. 격자에 나타나는 서로 다른 YOKOHAMA 추적이 몇 개인지 세라.

입력

입력은 다음 형식으로 주어지는 테스트 케이스 하나이다.

nn mm

x1,1x_{1,1} ⋯\cdots x1,mx_{1,m}

⋮\vdots

xn,1x_{n,1} ⋯\cdots xn,mx_{n,m}

첫 줄에는 격자의 행 수와 열 수를 나타내는 두 정수 nn과 mm (1≤n≤101 \le n \le 10, 1≤m≤101 \le m \le 10)이 주어진다. 이어지는 nn개의 줄은 칸에 적힌 글자를 나타낸다. ii행 jj열 칸 (1≤i≤n1 \le i \le n, 1≤j≤m1 \le j \le m)에는 xi,jx_{i,j}가 적혀 있다. 각 xi,jx_{i,j}는 A, H, K, M, O, Y 중 하나이다.

출력

서로 다른 YOKOHAMA 추적의 개수를 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    2 4
    YOHA
    OKAM
    
    예상 출력
    8
    
  2. 예제 2

    입력
    3 4
    YOKH
    OKHA
    KHAM
    
    예상 출력
    0
    
  3. 예제 3

    입력
    3 6
    MAYOHA
    AHOKAM
    MAYOHA
    
    예상 출력
    80