막대로 보는 점괘
시간 제한2초메모리 제한512 MB
n×m 글자 격자와 p개의 질의 단어가 주어질 때, 각 단어에서 행이나 열을 따라 네 방향 중 하나로 놓을 수 있는 가장 긴 연속 부분 문자열의 길이를 구한다.
문제
영선이는 엉터리 점술사이다. 영선이는 아주 간단한 방법으로 점을 쳐서 운의 양을 정한다.
격자판의 각 칸에는 알파벳이 하나씩 쓰여 있다. 점을 보러 온 사람은 길이가 인 단어를 마음대로 하나 적는다. 영선이는 그 단어의 연속된 일부분이 격자판의 문자와 최대한 길게 일치하도록 단어를 격자판 위에 겹쳐 놓고, 일치한 연속 부분의 길이로 운의 양을 정한다.
단어는 가로나 세로에 평행하게 한 줄로 놓으며, 글자가 이어지는 방향은 위, 아래, 왼쪽, 오른쪽 중 어느 쪽이어도 된다. 일치하지 않는 문자는 격자판 밖으로 벗어나도 된다.
예를 들어 격자판이 다음과 같다고 하자. 는 번째 행의 번째 칸을 뜻한다.
ABCDE
FGHIJ
KLMNO
PQRST
UVWXY
단어가 AHMRVP이면 연속된 일부분 HMR을 부터 까지 겹쳐 놓을 수 있다. 단어가 JEHGFP이면 연속된 일부분 HGF를 부터 까지 찾을 수 있다.
영선이는 엉터리 점술사인데도 우연히 점괘가 잘 맞아서 의외로 인기가 많다. 오늘도 명의 점괘를 봐 줘야 하지만, 영선이는 점괘로 번 돈으로 놀고 있다. 영선이 대신 각 단어를 격자판에서 찾아 주자.
입력
첫째 줄에 격자판의 크기 , 이 주어진다. ()
다음 개의 줄에는 격자판의 각 행을 이루는 문자 개가 공백 없이 주어진다.
다음 줄에 점괘를 보러 온 사람의 수 와 단어의 길이 가 주어진다. (, )
다음 개의 줄에는 각 사람이 적은 단어의 문자 개가 공백 없이 주어진다.
격자판과 단어의 모든 문자는 알파벳 대문자이다.
출력
입력된 순서대로 한 줄에 하나씩, 각 단어에서 격자판과 겹쳐 일치시킬 수 있는 가장 긴 연속된 일부분의 길이를 출력한다. 단어의 어떤 문자도 격자판에 없으면 을 출력한다.