Kenny는 학생들에게 수학을 가르치는 유치원 교사이다. 학습을 돕기 위해 재미있고 짜증 나지 않는 형식인 숫자 찾기 숙제를 내고 싶어 한다.
숫자 찾기 퍼즐은 단어 찾기 퍼즐과 비슷하지만, 단어 대신 수학식을 찾는다. 퍼즐 하나는 두 부분으로 이루어진다. $n$행 $m$열 격자와 찾아야 할 $q$개의 목표 수 목록 $a_1,a_2,\ldots,a_q$이다. 각 칸에는 1부터 9까지의 숫자, 더하기 기호 + 또는 곱하기 기호 *가 들어 있다.
같은 행, 열 또는 대각선을 따라 직선으로, 어느 방향으로든 한 개 이상의 연속한 문자를 이어 식을 만들 수 있다. 각 식은 시작 칸과 끝 칸으로 정의할 수 있다. 시작 칸이나 끝 칸이 다르면 정확히 같은 문자를 포함하더라도 서로 다른 식으로 간주한다.
유효한 식은 다음 형태여야 한다.
$$num\quad op\quad num\quad op\quad\cdots\quad op\quad num$$
각 $num$은 한 개 이상의 숫자로 된 열이고, 각 $op$는 + 또는 *이다. 예를 들어 123과 1+2*3+45는 유효한 식이지만 +123과 2**5는 아니다. 식의 값은 일반적인 산술 규칙에 따라 계산한 결과이다.
퍼즐의 목표는 각 수 $a_i$에 대해, 격자에 있는 서로 다른 유효한 식 중 값이 $a_i$인 것의 수를 세는 것이다.
규칙을 설명하기 위해 다음 완성된 숫자 찾기 퍼즐을 보자.
$r$행 $c$열 칸을 $(r,c)$라고 하자.
- $67$의 답은 $2$이다. $(1,4)$에서 시작하는 식
67이 두 개 있기 때문이다. 두 식은 같은 문자를 포함하지만 끝나는 위치가 달라 서로 다른 식으로 간주한다. - $420$의 답은 $0$이다. 격자에 값이 $420$인 식이 없기 때문이다.
$3$의 답은 $4$이다.
- 식
3은 $(1,7)$과 $(9,5)$에 두 번 나타난다. - 식
1+2는 $(6,2)$부터 $(8,2)$까지 나타난다. - 식
2+1은 $(8,2)$부터 $(6,2)$까지 나타난다. 같은 칸 집합을 공유하지만 시작 위치가 다르므로 두 식은 서로 다르다.
- 식
$727$의 답은 $3$이다.
- 식
7+16*45는 $(2,1)$부터 $(8,7)$까지 나타난다. 곱셈을 덧셈보다 먼저 한다는 점에 유의하라. - 식
727은 $(3,5)$부터 $(3,7)$까지, 그리고 $(3,7)$부터 $(3,5)$까지 나타난다. 같은 칸 집합을 공유하고 같은 문자를 포함하지만 시작 위치가 달라 서로 다른 식이다.
- 식
Kenny는 아이들이 재미있는 숫자 찾기 퍼즐을 즐겁게 푸는 모습을 빨리 보고 싶다. 하지만 퍼즐을 주기 전에 답을 준비해야 한다. 준비한 각 퍼즐의 답을 계산하도록 도와 달라.
입력
첫 번째 줄에는 각각 행 수, 열 수, 목표 수의 개수를 나타내는 세 정수 $n,m,q$가 있다.
다음 $n$개의 줄은 각각 격자를 나타내는 길이 $m$의 문자열을 포함한다.
그 다음 $q$개의 줄 중 $i$번째 줄에는 $i$번째 목표 수를 나타내는 정수 $a_i$가 있다.
- $1 \le n,m \le 1000$
- $1 \le n \times m \le 3 \times 10^4$
- $1 \le q \le 10^5$
- 격자에는
123456789+*에 속하는 문자만 있다. - $1 \le a_i \le 10^6$
- 모든 $a_i$는 서로 다르다.
출력
$q$개의 줄을 출력하라. $i$번째 줄에는 $a_i$의 답을 나타내는 정수 하나를 출력한다.
예제
입력 1
9 8 4 4216793+ 717*4*54 7+5+727* 45149+71 8+26697* +189*2+9 5+*244+7 42595952 97+*315+ 67 420 3 727
출력 1
2 0 4 3