#abc260g. [abc260_g]Scalene Triangle Area

[abc260_g]Scalene Triangle Area

問題文

NtimesNN \\times N のグリッドがあり、このグリッドの上から ii マス目、左から jj マス目を (i,j)(i,j) と呼びます。
このグリッドの各マスには高々 11 個のコマが置かれています。
グリッドの状態は NN 個の文字列 SiS_i として与えられ、

  • SiS_ijj 文字目が O であるとき (i,j)(i,j)11 つコマが置かれていること
  • SiS_ijj 文字目が X であるとき (i,j)(i,j) にコマは置かれていないこと

を表します。

整数 MM が与えられます。 この MM を使って、 (s,t)(s,t) に置かれているコマ PP について、以下の条件を全て満たすマス (u,v)(u,v)PP が守っているマスと定義します。

  • sleuleNs \\le u \\le N
  • tlevleNt \\le v \\le N
  • (us)+frac(vt)2<M(u - s) + \\frac{(v - t)}{2} < M

QQ 個のマス (Xi,Yi)(X_i,Y_i) について、そのマスを守っているコマの個数を求めてください。

制約

  • N,M,Xi,Yi,QN,M,X_i,Y_i,Q は整数
  • 1leNle20001 \\le N \\le 2000
  • 1leMle2timesN1 \\le M \\le 2 \\times N
  • SiS_iO, X からなる
  • 1leQle2times1051 \\le Q \\le 2 \\times 10^5
  • 1leXi,YileN1 \\le X_i,Y_i \\le N

入力

入力は以下の形式で標準入力から与えられる。

NN MM S1S_1 S2S_2 vdots\\vdots SNS_N QQ X1X_1 Y1Y_1 X2X_2 Y2Y_2 vdots\\vdots XQX_Q YQY_Q

出力

QQ 行出力せよ。
そのうち ii ( 1leileQ1 \\le i \\le Q ) 行目には、マス (Xi,Yi)(X_i,Y_i) を守っているコマの個数を整数として出力せよ。


入力例 1

4 2
OXXX
XXXX
XXXX
XXXX
6
1 1
1 4
2 2
2 3
3 1
4 4

出力例 1

1
1
1
0
0
0

マス (1,1)(1,1) のみにコマが置かれ、このコマによって以下の # のマスが守られます。

####
##..
....
....

入力例 2

5 10
OOOOO
OOOOO
OOOOO
OOOOO
OOOOO
5
1 1
2 3
3 4
4 2
5 5

出力例 2

1
6
12
8
25

入力例 3

8 5
OXXOXXOX
XOXXOXOX
XOOXOOXO
OXOOXOXO
OXXOXXOX
XOXXOXOX
XOOXOOXO
OXOOXOXO
6
7 2
8 1
4 5
8 8
3 4
1 7

出力例 3

5
3
9
14
5
3