/* paiza POH! vol.2
* result:
* http://p...content-available-to-author-only...a.jp/poh/paizen/result/49b109cda01f53abda3129b43c143c38
* author: Leonardone @ NEETSDKASU
*/
#include <cstdio>
using namespace std;
#define OUTPUTSIZE (600000)
char output[OUTPUTSIZE];
char *optr = output;
inline void putInt(int v) {
if (v < 10) {
*optr = '0' + (char)v;
++optr;
} else {
putInt(v / 10);
*optr = '0' + (char)(v % 10);
++optr;
}
}
inline void putNewline() {
*optr = '\n';
++optr;
}
#define BUFSIZE (900000)
char buf[BUFSIZE];
char *ptr = buf;
inline int getInt() {
int v = 0;
while (*ptr < '0' || *ptr > '9') ++ptr;
while (*ptr >= '0' && *ptr <= '9') {
v = 10 * v + (int)(*ptr - '0');
++ptr;
}
return v;
}
inline char getChar() {
while (*ptr < '0' || *ptr > '9') ++ptr;
return *ptr++;
}
int space2top[301];
int table[301][301];
typedef int * PINT;
int main() {
int H, W, N, s, t, i, x, y;
char str[310];
PINT p, q;
fread(buf, sizeof(char), BUFSIZE, stdin);
H = getInt();
W = getInt();
for (y = 0; y < H; ++y) {
q = space2top + 1;
for (x = 0; x < W; ++x, ++q) {
if (getChar() == '0') {
p = q;
s = ++(*p);
t = 1;
while (*p) {
if (*p < s) {
s = *p;
}
++table[t][s];
++t;
--p;
}
} else {
*q = 0;
}
}
}
for (x = 1; x <= W; ++x) {
p = table[x] + H;
for (y = 1; y < H; ++y) {
--p;
*p += *(p + 1);
}
}
N = getInt();
for (i = 0; i < N; ++i) {
s = getInt();
t = getInt();
putInt(table[t][s]);
putNewline();
}
fwrite(output, sizeof(char), (int)optr - (int)output, stdout);
return 0;
}
LyogcGFpemEgUE9IISB2b2wuMgogKiByZXN1bHQ6CiAqIGh0dHA6Ly9wLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5hLmpwL3BvaC9wYWl6ZW4vcmVzdWx0LzQ5YjEwOWNkYTAxZjUzYWJkYTMxMjliNDNjMTQzYzM4CiAqIGF1dGhvcjogTGVvbmFyZG9uZSBAIE5FRVRTREtBU1UKICovCiNpbmNsdWRlIDxjc3RkaW8+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIE9VVFBVVFNJWkUgKDYwMDAwMCkKY2hhciBvdXRwdXRbT1VUUFVUU0laRV07CmNoYXIgKm9wdHIgPSBvdXRwdXQ7CiAKaW5saW5lIHZvaWQgcHV0SW50KGludCB2KSB7CglpZiAodiA8IDEwKSB7CgkJKm9wdHIgPSAnMCcgKyAoY2hhcil2OwoJCSsrb3B0cjsKCX0gZWxzZSB7CgkJcHV0SW50KHYgLyAxMCk7CgkJKm9wdHIgPSAnMCcgKyAoY2hhcikodiAlIDEwKTsKCQkrK29wdHI7Cgl9Cn0KIAppbmxpbmUgdm9pZCBwdXROZXdsaW5lKCkgewoJKm9wdHIgPSAnXG4nOwoJKytvcHRyOwp9CiAKI2RlZmluZSBCVUZTSVpFICg5MDAwMDApCmNoYXIgYnVmW0JVRlNJWkVdOwpjaGFyICpwdHIgPSBidWY7CiAKaW5saW5lIGludCBnZXRJbnQoKSB7CglpbnQgdiA9IDA7Cgl3aGlsZSAoKnB0ciA8ICcwJyB8fCAqcHRyID4gJzknKSArK3B0cjsKCXdoaWxlICgqcHRyID49ICcwJyAmJiAqcHRyIDw9ICc5JykgewoJCXYgPSAxMCAqIHYgKyAoaW50KSgqcHRyIC0gJzAnKTsKCQkrK3B0cjsKCX0KCXJldHVybiB2Owp9CiAKaW5saW5lIGNoYXIgZ2V0Q2hhcigpIHsKCXdoaWxlICgqcHRyIDwgJzAnIHx8ICpwdHIgPiAnOScpICsrcHRyOwoJcmV0dXJuICpwdHIrKzsKfQoKaW50IHNwYWNlMnRvcFszMDFdOwppbnQgdGFibGVbMzAxXVszMDFdOwoKdHlwZWRlZiBpbnQgKiBQSU5UOwoKaW50IG1haW4oKSB7CglpbnQgSCwgVywgTiwgcywgdCwgaSwgeCwgeTsKCWNoYXIgc3RyWzMxMF07CglQSU5UIHAsIHE7CgkKCWZyZWFkKGJ1Ziwgc2l6ZW9mKGNoYXIpLCBCVUZTSVpFLCBzdGRpbik7CgkKCUggPSBnZXRJbnQoKTsKCVcgPSBnZXRJbnQoKTsKCQoJZm9yICh5ID0gMDsgeSA8IEg7ICsreSkgewoJCXEgPSBzcGFjZTJ0b3AgKyAxOwoJCWZvciAoeCA9IDA7IHggPCBXOyArK3gsICsrcSkgewoJCQlpZiAoZ2V0Q2hhcigpID09ICcwJykgewoJCQkJcCA9IHE7CgkJCQlzID0gKysoKnApOwoJCQkJdCA9IDE7CgkJCQl3aGlsZSAoKnApIHsKCQkJCQlpZiAoKnAgPCBzKSB7CgkJCQkJCXMgPSAqcDsKCQkJCQl9CgkJCQkJKyt0YWJsZVt0XVtzXTsKCQkJCQkrK3Q7CgkJCQkJLS1wOwoJCQkJfQoJCQl9IGVsc2UgewoJCQkJKnEgPSAwOwoJCQl9CgkJfQoJfQoJCglmb3IgKHggPSAxOyB4IDw9IFc7ICsreCkgewoJCXAgPSB0YWJsZVt4XSArIEg7CgkJZm9yICh5ID0gMTsgeSA8IEg7ICsreSkgewoJCQktLXA7CgkJCSpwICs9ICoocCArIDEpOwoJCX0KCX0KCQoJTiA9IGdldEludCgpOwoJCglmb3IgKGkgPSAwOyBpIDwgTjsgKytpKSB7CgkJcyA9IGdldEludCgpOwoJCXQgPSBnZXRJbnQoKTsKCQlwdXRJbnQodGFibGVbdF1bc10pOwoJCXB1dE5ld2xpbmUoKTsKCX0KCQoJZndyaXRlKG91dHB1dCwgc2l6ZW9mKGNoYXIpLCAoaW50KW9wdHIgLSAoaW50KW91dHB1dCwgc3Rkb3V0KTsKCQkKCXJldHVybiAwOwp9Cg==