#include <bits/stdc++.h>
using namespace std;
int h, w, q, cnt;
const int N = 1005000;
int fa[N], sz[N], id[1050][1050];
int find(int t) { return t == fa[t] ? t : fa[t] = find(fa[t]); }
void merge(int x, int y) {
  x = find(x), y = find(y);
  if (x == y) return;
  if (sz[x] > sz[y]) swap(x, y);
  fa[x] = y;
  sz[y] += sz[x];
}
int tmp_fa[N], tmp_sz[N];
int tmp_find(int t) { return t == tmp_fa[t] ? t : tmp_find(tmp_fa[t]); }
int num;
struct back {
  int x, y;
} b[N];
void tmp_merge(int x, int y) {
  x = tmp_find(x), y = tmp_find(y);
  if (x == y) return;
  if (tmp_sz[x] > tmp_sz[y]) swap(x, y);
  ++num;
  b[num].x = x, b[num].y = y;
  tmp_fa[x] = y;
  tmp_sz[y] += tmp_sz[x];
}
char s[1050][1050];
int nxt[9][2] = {{-1, 0}, {-1, 1}, {0, 1},   {1, 1}, {1, 0},
                 {1, -1}, {0, -1}, {-1, -1}, {0, 0}};
set<int> mp[N];
set<int>::iterator it;
void dfs(int x, int y, int stp, set<int>& S) {
  if (x == 2 && y == 2) return;
  if (x == h - 1 && y == w - 1) return;
  if (s[x][y] == '#') S.insert(find(id[x][y]));
  if (!stp) return;
  for (int tx, ty, k = 0; k < 8; ++k) {
    tx = x + nxt[k][0], ty = y + nxt[k][1];
    if (id[tx][ty]) dfs(tx, ty, stp - 1, S);
  }
}
int x[15], y[15];
int main() {
  scanf("%d%d%d", &h, &w, &q);
  h += 2, w += 2;
  for (int i = 1; i <= h; ++i)
    for (int j = 1; j <= w; ++j) {
      id[i][j] = ++cnt;
      fa[cnt] = cnt;
      sz[cnt] = 1;
    }
  for (int i = 2; i <= h - 1; ++i) {
    scanf("%s", s[i] + 2);
  }
  for (int i = 4; i <= h; ++i) s[i][1] = '#';
  for (int i = 1; i <= h - 3; ++i) s[i][w] = '#';
  for (int i = 4; i <= w; ++i) s[1][i] = '#';
  for (int i = 1; i <= w - 3; ++i) s[h][i] = '#';
  for (int i = 1; i <= h; ++i)
    for (int j = 1; j <= w; ++j)
      if (s[i][j] == '#') {
        for (int k = 0; k < 8; ++k) {
          if (id[i + nxt[k][0]][j + nxt[k][1]] &&
              s[i + nxt[k][0]][j + nxt[k][1]] == '#') {
            merge(id[i][j], id[i + nxt[k][0]][j + nxt[k][1]]);
          }
        }
      }
  for (int i = 1; i <= h; ++i)
    for (int j = 1; j <= w; ++j) {
      dfs(i, j, 2, mp[find(id[i][j])]);
    }
  memcpy(tmp_fa, fa, sizeof(fa));
  memcpy(tmp_sz, sz, sizeof(sz));
  while (q--) {
    int tot;
    scanf("%d", &tot);
    for (int i = 1; i <= tot; ++i) {
      scanf("%d%d", &x[i], &y[i]);
      ++x[i], ++y[i];
      s[x[i]][y[i]] = '#';
    }
    for (int i = 1; i <= tot; ++i) {
      for (int k = 0; k < 8; ++k) {
        if (id[x[i] + nxt[k][0]][y[i] + nxt[k][1]] &&
            s[x[i] + nxt[k][0]][y[i] + nxt[k][1]] == '#') {
          tmp_merge(id[x[i] + nxt[k][0]][y[i] + nxt[k][1]], id[x[i]][y[i]]);
        }
      }
    }
    for (int i = 1; i <= tot; ++i) {
      for (int k = 0; k <= 8; ++k) {
        int tx = x[i] + nxt[k][0], ty = y[i] + nxt[k][1];
        if (id[tx][ty] && tmp_find(id[tx][ty]) == tmp_find(id[h][1])) {
          int st = find(id[tx][ty]);
          for (it = mp[st].begin(); it != mp[st].end(); ++it) {
            if (tmp_find(*it) == tmp_find(id[1][w])) {
              puts("NO");
              goto END;
            }
          }
        }
        if (id[tx][ty] && tmp_find(id[tx][ty]) == tmp_find(id[1][w])) {
          int st = find(id[tx][ty]);
          for (it = mp[st].begin(); it != mp[st].end(); ++it) {
            if (tmp_find(*it) == tmp_find(id[h][1])) {
              puts("NO");
              goto END;
            }
          }
        }
      }
    }
    for (int i = 1; i <= tot; ++i)
      for (int j = i + 1; j <= tot; ++j) {
        if (max(abs(y[i] - y[j]), abs(x[i] - x[j])) <= 2) {
          if (tmp_find(id[x[i]][y[i]]) == tmp_find(id[h][1]) &&
              tmp_find(id[x[j]][y[j]]) == tmp_find(id[1][w])) {
            puts("NO");
            goto END;
          }
          if (tmp_find(id[x[i]][y[i]]) == tmp_find(id[1][w]) &&
              tmp_find(id[x[j]][y[j]]) == tmp_find(id[h][1])) {
            puts("NO");
            goto END;
          }
        }
      }
    puts("YES");
  END:
    fflush(stdout);
    for (int i = num; i >= 1; --i) {
      tmp_fa[b[i].x] = b[i].x;
      tmp_sz[b[i].y] -= tmp_sz[b[i].x];
    }
    num = 0;
    for (int i = 1; i <= tot; ++i) {
      s[x[i]][y[i]] = '.';
    }
  }
  return 0;
}
