#include <bits/stdc++.h>
using namespace std;
const int Maxn = 1010;
const int dx[8] = {-1, -1, -1, 0, 0, 1, 1, 1};
const int dy[8] = {-1, 0, 1, -1, 1, -1, 0, 1};
int num[Maxn][Maxn], tot;
int st, ed;
int fa[Maxn * Maxn];
int ff1(int x) { return fa[x] == x ? x : fa[x] = ff1(fa[x]); }
int ff2(int x) { return fa[x] == x ? x : ff2(fa[x]); }
int n, m, Q;
char s[Maxn][Maxn];
set<pair<int, int> > S;
int X[15], Y[15], gs;
int sta[Maxn * Maxn], tp;
int main() {
  int i, j, k;
  scanf("%d%d%d", &n, &m, &Q);
  for (i = 1; i <= n; i++) scanf("%s", s[i] + 1);
  for (i = 1; i <= n; i++)
    for (j = 1; j <= m; j++) num[i][j] = ++tot;
  st = ++tot;
  ed = ++tot;
  for (i = 1; i <= n; i++)
    num[i][0] = st, num[i][m + 1] = ed, s[i][0] = s[i][m + 1] = '#';
  for (i = 1; i <= m; i++)
    num[0][i] = ed, num[n + 1][i] = st, s[0][i] = s[n + 1][i] = '#';
  for (i = 1; i <= tot; i++) fa[i] = i;
  for (i = 1; i <= n; i++) {
    for (j = 1; j <= m; j++) {
      if (s[i][j] == '#') {
        for (k = 0; k < 8; k++) {
          int xx = i + dx[k], yy = j + dy[k];
          if (s[xx][yy] == '#') {
            int fx = ff1(num[i][j]), fy = ff1(num[xx][yy]);
            if (fx != fy) fa[fx] = fy;
          }
        }
      }
    }
  }
  bool bk = true;
  for (i = 1; i <= n && bk; i++) {
    for (j = 1; j <= m && bk; j++) {
      if (i == 1 && j == 1) continue;
      if (i == n && j == m) continue;
      for (k = 0; k < 8; k++) {
        for (int x = 0; x < k; x++) {
          int fx = ff1(num[i + dx[k]][j + dy[k]]),
              fy = ff1(num[i + dx[x]][j + dy[x]]);
          if (!S.count(make_pair(fx, fy))) S.insert(make_pair(fx, fy));
          if (fx == ff1(st) && fy == ff1(ed)) {
            bk = false;
            break;
          }
        }
      }
    }
  }
  if (bk == false) {
    while (Q--) cout << "NO" << endl;
    return 0;
  }
  while (Q--) {
    scanf("%d", &gs);
    tp = 0;
    for (i = 1; i <= gs; i++) {
      scanf("%d%d", &X[i], &Y[i]);
      s[X[i]][Y[i]] = '#';
      sta[++tp] = num[X[i]][Y[i]];
      for (j = 0; j < 8; j++) {
        int xx = X[i] + dx[j], yy = Y[i] + dy[j];
        if (s[xx][yy] == '#') sta[++tp] = ff1(num[xx][yy]);
      }
    }
    sta[++tp] = ff1(st);
    sta[++tp] = ff1(ed);
    sort(sta + 1, sta + tp + 1);
    tp = unique(sta + 1, sta + tp + 1) - (sta + 1);
    for (i = 1; i <= gs; i++) {
      for (j = 0; j < 8; j++) {
        int xx = X[i] + dx[j], yy = Y[i] + dy[j];
        if (s[xx][yy] == '#') {
          int fx = ff2(num[X[i]][Y[i]]), fy = ff2(num[xx][yy]);
          if (fx != fy) fa[fx] = fy;
        }
      }
    }
    bk = true;
    for (i = 1; i <= tp && bk; i++)
      if (ff2(sta[i]) == ff2(st)) {
        for (j = 1; j <= tp; j++) {
          if (ff2(sta[j]) == ff2(ed) && S.count(make_pair(sta[i], sta[j]))) {
            bk = false;
            break;
          }
        }
      }
    if (bk == true)
      cout << "YES";
    else
      cout << "NO";
    cout << endl;
    for (i = 1; i <= tp; i++) fa[sta[i]] = sta[i];
    for (i = 1; i <= gs; i++) s[X[i]][Y[i]] = '.';
  }
  return 0;
}
