/* paiza POH!vol.2
* result:
* http://p...content-available-to-author-only...a.jp/poh/paizen/result/965285167fbbc3cc916891875d5d798b
* author: Leonardone @ NEETSDKASU
*/
#include <stdio.h>
char input[100000];
char *ptr = input;
int getInt(void) {
int v = 0;
while (*ptr < '0' || *ptr > '9') ++ptr;
while (*ptr >= '0' && *ptr <= '9')
{
v = 10 * v + (int)(*ptr - '0');
++ptr;
}
return v;
}
char getChar(void) {
while (*ptr < '0' || *ptr > '9') ++ptr;
return *ptr++;
}
void putInt(int v) {
if (v < 10) {
} else {
putInt(v / 10);
}
}
int home[300][300];
int hoge[300][300];
int main(void) {
int H, W, N, s, t;
int x, y, c, i;
int hx, hy, hxe, hye;
int count, dy, dx;
char ch;
fread(input
, sizeof(char), 100000, stdin
); H = getInt();
W = getInt();
for (y = 0; y < H; ++y) {
c = 0;
for (x = 0; x < W; ++x) {
ch = getChar();
if (ch == '0') {
c++;
if (y) {
hoge[y][x] = hoge[y - 1][x] + 1;
} else {
hoge[y][x] = 1;
}
} else {
c = 0;
hoge[y][x] = 0;
}
home[y][x] = c;
}
}
N = getInt();
for (i = 0; i < N; ++i) {
s = getInt();
t = getInt();
if (s > H || t > W) {
continue;
}
hye = s - 1;
hxe = t - 1;
count = 0;
for (hy = H - 1; hy >= hye; --hy) {
for (hx = W - 1; hx >= hxe; --hx) {
if (home[hy][hx] < t) {
hx -= home[hy][hx];
continue;
}
if (hoge[hy][hx] < s) {
continue;
}
for (dy = 1; dy < s; ++dy) {
y = hy - dy;
if (y < 0) {
break;
}
if (home[y][hx] < t) {
break;
}
}
if (dy == s) {
count++;
}
}
}
putInt(count);
}
return 0;
}
LyogcGFpemEgUE9IIXZvbC4yCiAqIHJlc3VsdDoKICogaHR0cDovL3AuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmEuanAvcG9oL3BhaXplbi9yZXN1bHQvOTY1Mjg1MTY3ZmJiYzNjYzkxNjg5MTg3NWQ1ZDc5OGIKICogYXV0aG9yOiBMZW9uYXJkb25lIEAgTkVFVFNES0FTVQogKi8KI2luY2x1ZGUgPHN0ZGlvLmg+CgpjaGFyIGlucHV0WzEwMDAwMF07CmNoYXIgKnB0ciA9IGlucHV0OwoKaW50IGdldEludCh2b2lkKSB7CglpbnQgdiA9IDA7Cgl3aGlsZSAoKnB0ciA8ICcwJyB8fCAqcHRyID4gJzknKSArK3B0cjsKCXdoaWxlICgqcHRyID49ICcwJyAmJiAqcHRyIDw9ICc5JykKCXsKCQl2ID0gMTAgKiB2ICsgKGludCkoKnB0ciAtICcwJyk7CgkJKytwdHI7Cgl9CglyZXR1cm4gdjsKfQoKY2hhciBnZXRDaGFyKHZvaWQpIHsKCXdoaWxlICgqcHRyIDwgJzAnIHx8ICpwdHIgPiAnOScpICsrcHRyOwoJcmV0dXJuICpwdHIrKzsKfQoKdm9pZCBwdXRJbnQoaW50IHYpIHsKCWlmICh2IDwgMTApIHsKCQlwdXRjaGFyKCcwJyArIChjaGFyKXYpOwoJfSBlbHNlIHsKCQlwdXRJbnQodiAvIDEwKTsKCQlwdXRjaGFyKCcwJyArIChjaGFyKSh2ICUgMTApKTsKCX0KfQoKaW50IGhvbWVbMzAwXVszMDBdOwppbnQgaG9nZVszMDBdWzMwMF07CgppbnQgbWFpbih2b2lkKSB7CglpbnQgSCwgVywgTiwgcywgdDsKCWludCB4LCB5LCBjLCBpOwoJaW50IGh4LCBoeSwgaHhlLCBoeWU7CglpbnQgY291bnQsIGR5LCBkeDsKCWNoYXIgY2g7CglmcmVhZChpbnB1dCwgc2l6ZW9mKGNoYXIpLCAxMDAwMDAsIHN0ZGluKTsKCUggPSBnZXRJbnQoKTsKCVcgPSBnZXRJbnQoKTsKCQoJZm9yICh5ID0gMDsgeSA8IEg7ICsreSkgewoJCWMgPSAwOwoJCWZvciAoeCA9IDA7IHggPCBXOyArK3gpIHsKCQkJY2ggPSBnZXRDaGFyKCk7CgkJCWlmIChjaCA9PSAnMCcpIHsKCQkJCWMrKzsKCQkJCWlmICh5KSB7CgkJCQkJaG9nZVt5XVt4XSA9IGhvZ2VbeSAtIDFdW3hdICsgMTsKCQkJCX0gZWxzZSB7CgkJCQkJaG9nZVt5XVt4XSA9IDE7CgkJCQl9CgkJCX0gZWxzZSB7CgkJCQljID0gMDsKCQkJCWhvZ2VbeV1beF0gPSAwOwoJCQl9CgkJCWhvbWVbeV1beF0gPSBjOwoJCX0KCX0KCQoJTiA9IGdldEludCgpOwoJCglmb3IgKGkgPSAwOyBpIDwgTjsgKytpKSB7CgkJcyA9IGdldEludCgpOwoJCXQgPSBnZXRJbnQoKTsKCQkKCQlpZiAocyA+IEggfHwgdCA+IFcpIHsKCQkJcHV0Y2hhcignMCcpOwoJCQlwdXRjaGFyKCdcbicpOwoJCQljb250aW51ZTsKCQl9CgkJCgkJaHllID0gcyAtIDE7CgkJaHhlID0gdCAtIDE7CgkJY291bnQgPSAwOwoJCWZvciAoaHkgPSBIIC0gMTsgaHkgPj0gaHllOyAtLWh5KSB7CgkJCWZvciAoaHggPSAgVyAtIDE7IGh4ID49IGh4ZTsgLS1oeCkgewoJCQkJaWYgKGhvbWVbaHldW2h4XSA8IHQpIHsKCQkJCQloeCAtPSBob21lW2h5XVtoeF07CgkJCQkJY29udGludWU7CgkJCQl9CgkJCQlpZiAoaG9nZVtoeV1baHhdIDwgcykgewoJCQkJCWNvbnRpbnVlOwoJCQkJfQoJCQkJZm9yIChkeSA9IDE7IGR5IDwgczsgKytkeSkgewoJCQkJCXkgPSBoeSAtIGR5OwoJCQkJCWlmICh5IDwgMCkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQkJaWYgKGhvbWVbeV1baHhdIDwgdCkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCQlpZiAoZHkgPT0gcykgewoJCQkJCWNvdW50Kys7CgkJCQl9CgkJCX0KCQl9CgkJcHV0SW50KGNvdW50KTsKCQlwdXRjaGFyKCdcbicpOwoJfQoJCglyZXR1cm4gMDsKfQo=