/* paiza POH! vol.2
* result:
* http://p...content-available-to-author-only...a.jp/poh/paizen/result/7644cc0443bc07c4cc0ad7ccd1d2e46d
* author: Leonardone @ NEETSDKASU
*/
import java.util.*;
import java.lang.*;
import java.io.*;
final class Main
{
private static final int[][] s_table = new int[301][301];
private static final int[] s_space2top = new int[300];
private static final StringBuilder s_output = new StringBuilder(450000);
{
final int[][] table = s_table;
final int[] space2top = s_space2top;
final StringBuilder output = s_output;
int x, y, i, s, t;
int[] temp1, temp2;
String[] hw
= in.
readLine().
split(" "); final int H
= Integer.
parseInt(hw
[0]); // ホーム画面縦の区画数 final int W
= Integer.
parseInt(hw
[1]); // ホーム画面横の区画数
for (y = 0; y < H; y++) {
line = in.readLine();
for (x = 0; x < W; x++) {
if (line.charAt(x) == '0') {
space2top[x]++;
s = space2top[x];
t = 1;
for (i = x; i >= 0 && space2top[i] > 0; i--) {
if (space2top[i] < s) {
s = space2top[i];
}
table[t][s]++;
t++;
}
} else {
space2top[x] = 0;
}
}
}
for (t = 1; t <= W; t++) {
temp2 = table[t];
for (s = H - 1; s > 0; s--) {
temp2[s] = temp2[s] + temp2[s + 1];
}
}
final int N
= Integer.
parseInt(in.
readLine()); // ウィジェット数
for (i = 0; i < N; i++) {
hw = in.readLine().split(" ");
s
= Integer.
parseInt(hw
[0]); // ウィジェットの縦サイズ t
= Integer.
parseInt(hw
[1]); // ウィジェットの横サイズ
if (s <= H && t <= W) {
output.append(table[t][s]);
} else {
output.append('0');
}
output.append('\n');
}
} // end of main(String[])
}
LyogcGFpemEgUE9IISB2b2wuMgogKiByZXN1bHQ6CiAqIGh0dHA6Ly9wLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5hLmpwL3BvaC9wYWl6ZW4vcmVzdWx0Lzc2NDRjYzA0NDNiYzA3YzRjYzBhZDdjY2QxZDJlNDZkCiAqIGF1dGhvcjogTGVvbmFyZG9uZSBAIE5FRVRTREtBU1UKICovCmltcG9ydCBqYXZhLnV0aWwuKjsKaW1wb3J0IGphdmEubGFuZy4qOwppbXBvcnQgamF2YS5pby4qOwoKZmluYWwgY2xhc3MgTWFpbgp7Cglwcml2YXRlIHN0YXRpYyBmaW5hbCBCdWZmZXJlZFJlYWRlciBzX2luID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKAoJCQluZXcgSW5wdXRTdHJlYW1SZWFkZXIoU3lzdGVtLmluKSk7CgoJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W11bXSBzX3RhYmxlID0gbmV3IGludFszMDFdWzMwMV07CgkJCglwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnRbXSBzX3NwYWNlMnRvcCA9IG5ldyBpbnRbMzAwXTsKCglwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdCdWlsZGVyIHNfb3V0cHV0ID0gbmV3IFN0cmluZ0J1aWxkZXIoNDUwMDAwKTsKCQkKCQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJZmluYWwgQnVmZmVyZWRSZWFkZXIgaW4gPSBzX2luOwoJCWZpbmFsIGludFtdW10gdGFibGUgPSBzX3RhYmxlOwoJCWZpbmFsIGludFtdIHNwYWNlMnRvcCA9IHNfc3BhY2UydG9wOwoJCWZpbmFsIFN0cmluZ0J1aWxkZXIgb3V0cHV0ID0gc19vdXRwdXQ7CgkJCgkJaW50IHgsIHksIGksIHMsIHQ7CgkJaW50W10gdGVtcDEsIHRlbXAyOwoJCVN0cmluZyBsaW5lOwoJCQoJCVN0cmluZ1tdIGh3ID0gaW4ucmVhZExpbmUoKS5zcGxpdCgiICIpOwoJCWZpbmFsIGludCBIID0gSW50ZWdlci5wYXJzZUludChod1swXSk7IC8vIOODm+ODvOODoOeUu+mdoue4puOBruWMuueUu+aVsAoJCWZpbmFsIGludCBXID0gSW50ZWdlci5wYXJzZUludChod1sxXSk7IC8vIOODm+ODvOODoOeUu+mdouaoquOBruWMuueUu+aVsAoJCQoKCQlmb3IgKHkgPSAwOyB5IDwgSDsgeSsrKSB7CgkJCWxpbmUgPSBpbi5yZWFkTGluZSgpOwoJCQlmb3IgKHggPSAwOyB4IDwgVzsgeCsrKSB7CgkJCQlpZiAobGluZS5jaGFyQXQoeCkgPT0gJzAnKSB7CgkJCQkJc3BhY2UydG9wW3hdKys7CgkJCQkJcyA9IHNwYWNlMnRvcFt4XTsKCQkJCQl0ID0gMTsKCQkJCQlmb3IgKGkgPSB4OyBpID49IDAgJiYgc3BhY2UydG9wW2ldID4gMDsgaS0tKSB7CgkJCQkJCWlmIChzcGFjZTJ0b3BbaV0gPCBzKSB7CgkJCQkJCQlzID0gc3BhY2UydG9wW2ldOwoJCQkJCQl9CgkJCQkJCXRhYmxlW3RdW3NdKys7CgkJCQkJCXQrKzsKCQkJCQl9CgkJCQl9IGVsc2UgewoJCQkJCXNwYWNlMnRvcFt4XSA9IDA7CgkJCQl9CgkJCX0KCQl9CgkJCgkJZm9yICh0ID0gMTsgdCA8PSBXOyB0KyspIHsKCQkJdGVtcDIgPSB0YWJsZVt0XTsKCQkJZm9yIChzID0gSCAtIDE7IHMgPiAwOyBzLS0pIHsKCQkJCXRlbXAyW3NdID0gdGVtcDJbc10gKyB0ZW1wMltzICsgMV07CgkJCX0KCQl9CgkJCgkJZmluYWwgaW50IE4gPSBJbnRlZ2VyLnBhcnNlSW50KGluLnJlYWRMaW5lKCkpOyAvLyDjgqbjgqPjgrjjgqfjg4Pjg4jmlbAKCQkKCQlmb3IgKGkgPSAwOyBpIDwgTjsgaSsrKSB7CgkJCWh3ID0gaW4ucmVhZExpbmUoKS5zcGxpdCgiICIpOwoJCQlzID0gSW50ZWdlci5wYXJzZUludChod1swXSk7IC8vIOOCpuOCo+OCuOOCp+ODg+ODiOOBrue4puOCteOCpOOCugoJCQl0ID0gSW50ZWdlci5wYXJzZUludChod1sxXSk7IC8vIOOCpuOCo+OCuOOCp+ODg+ODiOOBruaoquOCteOCpOOCugoJCQkKCQkJaWYgKHMgPD0gSCAmJiB0IDw9IFcpIHsKCQkJCW91dHB1dC5hcHBlbmQodGFibGVbdF1bc10pOwoJCQl9IGVsc2UgewoJCQkJb3V0cHV0LmFwcGVuZCgnMCcpOwoJCQl9CgkJCW91dHB1dC5hcHBlbmQoJ1xuJyk7CgkJfQoJCQoJCVN5c3RlbS5vdXQucHJpbnQob3V0cHV0KTsKCQkKCX0gLy8gZW5kIG9mIG1haW4oU3RyaW5nW10pCn0K