#include <iostream>
#include <vector>
#include <queue>
#include <set>
using namespace std;
int h, w, q;
vector<string> grid;
int dx[] = {-1, 1, 0, 0};
int dy[] = {0, 0, -1, 1};
bool bfs(int sx, int sy, int ex, int ey, set<pair<int, int>>& blocked) {
queue<pair<int, int>> q;
set<pair<int, int>> visited;
q.push({sx, sy});
visited.insert({sx, sy});
while (!q.empty()) {
auto [x, y] = q.front(); q.pop();
if (x == ex && y == ey) return true;
for (int i = 0; i < 4; ++i) {
int nx = x + dx[i], ny = y + dy[i];
if (nx >= 0 && nx < h && ny >= 0 && ny < w && grid[nx][ny] == '.' && !blocked.count({nx, ny}) && !visited.count({nx, ny})) {
visited.insert({nx, ny});
q.push({nx, ny});
}
}
}
return false;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> h >> w >> q;
grid.resize(h);
for (int i = 0; i < h; ++i) {
cin >> grid[i];
}
while (q--) {
int k;
cin >> k;
set<pair<int, int>> blocked;
for (int i = 0; i < k; ++i) {
int r, c;
cin >> r >> c;
blocked.insert({r - 1, c - 1});
}
bool forward = bfs(0, 0, h - 1, w - 1, blocked);
bool backward = bfs(h - 1, w - 1, 0, 0, blocked);
if (forward && backward) {
cout << "YES\n";
} else {
cout << "NO\n";
}
cout.flush();
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8cXVldWU+CiNpbmNsdWRlIDxzZXQ+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IGgsIHcsIHE7CnZlY3RvcjxzdHJpbmc+IGdyaWQ7CgppbnQgZHhbXSA9IHstMSwgMSwgMCwgMH07CmludCBkeVtdID0gezAsIDAsIC0xLCAxfTsKCmJvb2wgYmZzKGludCBzeCwgaW50IHN5LCBpbnQgZXgsIGludCBleSwgc2V0PHBhaXI8aW50LCBpbnQ+PiYgYmxvY2tlZCkgewogICAgcXVldWU8cGFpcjxpbnQsIGludD4+IHE7CiAgICBzZXQ8cGFpcjxpbnQsIGludD4+IHZpc2l0ZWQ7CiAgICBxLnB1c2goe3N4LCBzeX0pOwogICAgdmlzaXRlZC5pbnNlcnQoe3N4LCBzeX0pOwogICAgCiAgICB3aGlsZSAoIXEuZW1wdHkoKSkgewogICAgICAgIGF1dG8gW3gsIHldID0gcS5mcm9udCgpOyBxLnBvcCgpOwogICAgICAgIAogICAgICAgIGlmICh4ID09IGV4ICYmIHkgPT0gZXkpIHJldHVybiB0cnVlOwogICAgICAgIAogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgKytpKSB7CiAgICAgICAgICAgIGludCBueCA9IHggKyBkeFtpXSwgbnkgPSB5ICsgZHlbaV07CiAgICAgICAgICAgIGlmIChueCA+PSAwICYmIG54IDwgaCAmJiBueSA+PSAwICYmIG55IDwgdyAmJiBncmlkW254XVtueV0gPT0gJy4nICYmICFibG9ja2VkLmNvdW50KHtueCwgbnl9KSAmJiAhdmlzaXRlZC5jb3VudCh7bngsIG55fSkpIHsKICAgICAgICAgICAgICAgIHZpc2l0ZWQuaW5zZXJ0KHtueCwgbnl9KTsKICAgICAgICAgICAgICAgIHEucHVzaCh7bngsIG55fSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gZmFsc2U7Cn0KCmludCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKICAgIAogICAgY2luID4+IGggPj4gdyA+PiBxOwogICAgZ3JpZC5yZXNpemUoaCk7CiAgICAKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaDsgKytpKSB7CiAgICAgICAgY2luID4+IGdyaWRbaV07CiAgICB9CiAgICAKICAgIHdoaWxlIChxLS0pIHsKICAgICAgICBpbnQgazsKICAgICAgICBjaW4gPj4gazsKICAgICAgICBzZXQ8cGFpcjxpbnQsIGludD4+IGJsb2NrZWQ7CiAgICAgICAgCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBrOyArK2kpIHsKICAgICAgICAgICAgaW50IHIsIGM7CiAgICAgICAgICAgIGNpbiA+PiByID4+IGM7CiAgICAgICAgICAgIGJsb2NrZWQuaW5zZXJ0KHtyIC0gMSwgYyAtIDF9KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgYm9vbCBmb3J3YXJkID0gYmZzKDAsIDAsIGggLSAxLCB3IC0gMSwgYmxvY2tlZCk7CiAgICAgICAgYm9vbCBiYWNrd2FyZCA9IGJmcyhoIC0gMSwgdyAtIDEsIDAsIDAsIGJsb2NrZWQpOwogICAgICAgIAogICAgICAgIGlmIChmb3J3YXJkICYmIGJhY2t3YXJkKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIllFU1xuIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb3V0IDw8ICJOT1xuIjsKICAgICAgICB9CiAgICAgICAgY291dC5mbHVzaCgpOyAKICAgIH0KICAgIAogICAgcmV0dXJuIDA7Cn0=