알파벳 여행

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

문제

RRCC열 격자의 각 칸에 소문자 알파벳이 하나씩 적혀 있다. 아무 칸에서나 출발해 상하좌우로 인접한 칸으로 L1L-1번 이동하면 단어 하나가 만들어진다. 지나간 칸의 글자를 방문 순서대로 이어 붙인 문자열이 그 단어이고, 길이는 LL이다.

이동 규칙은 두 가지다. 격자 밖으로는 나갈 수 없다. 이미 지나온 칸으로 다시 들어가도 되고, 직전 칸으로 되돌아가는 이동도 허용한다. LL이 1이면 이동이 없으므로 칸 하나의 글자가 곧 단어다.

가능한 모든 출발 칸과 모든 이동 방법으로 단어를 전부 만든다. 다만 a, c, m 세 글자는 금지 글자다. 금지 글자를 하나라도 포함하는 단어는 버린다. 예를 들어 ici, ahi, mrk는 모두 버린다.

버리고 남은 단어가 몇 개인지, 그중 서로 다른 문자열이 몇 개인지 구하라. 출발 칸이나 이동 경로가 다르면 같은 문자열이라도 각각 한 개로 세지만, 서로 다른 단어의 개수를 셀 때는 같은 문자열을 한 번만 센다.

입력

첫 줄에 격자의 행 수 RR, 열 수 CC, 단어의 길이 LL이 공백으로 구분되어 주어진다. (0<R<110 < R < 11, 0<C<110 < C < 11, 0<L<70 < L < 7)

이어지는 RR개의 줄에 격자가 한 줄에 한 행씩 주어진다. 각 줄은 공백 없이 CC개의 소문자로 이루어진다.

출력

첫 줄에 만들어진 길이 LL짜리 단어의 개수를 출력한다. 둘째 줄에 그중 서로 다른 단어의 개수를 출력한다.