#include <bits/stdc++.h>
using namespace std;
pair<int, int> mp(int x, int y) { return make_pair(x, y); }
int n, m, q, fa[1010 * 1010], id[1010][1010], ct, a[1010][1010], s, t,
    tx[] = {-1, -1, 1, 1, -1, 1, 0, 0}, ty[] = {-1, 1, -1, 1, 0, 0, -1, 1},
    st[1010], x[1010], y[1010];
char ss[1010];
int f1(int x) { return fa[x] == x ? x : fa[x] = f1(fa[x]); }
int f2(int x) { return fa[x] == x ? x : f2(fa[x]); }
void mg(int x, int y) { fa[f2(x)] = f2(y); }
set<pair<int, int> > sv;
pair<int, int> bz(int x, int y) { return mp(min(x, y), max(x, y)); }
int main() {
  scanf("%d%d%d", &n, &m, &q);
  for (int i = 1; i <= n; i++) {
    scanf("%s", ss + 1);
    for (int j = 1; j <= m; j++)
      if (ss[j] == '#') a[i][j] = 1;
  }
  s = 1;
  t = 2;
  ct = 2;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) id[i][j] = ++ct;
  for (int i = 1; i <= n; i++) {
    a[i][0] = a[i][m + 1] = 1;
    id[i][0] = s;
    id[i][m + 1] = t;
  }
  for (int i = 1; i <= m; i++) {
    a[0][i] = a[n + 1][i] = 1;
    id[0][i] = t;
    id[n + 1][i] = s;
  }
  for (int i = 1; i <= n * m; i++) fa[i] = i;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++)
      if (a[i][j])
        for (int k = 0; k <= 7; k++) {
          int nx = i + tx[k], ny = j + ty[k];
          if (a[nx][ny]) fa[f1(id[i][j])] = f1(id[nx][ny]);
        }
  int ok = 0;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) {
      if ((i == 1 && j == 1) || (i == n && j == m)) continue;
      for (int k = 0; k <= 7; k++)
        for (int l = k + 1; l <= 7; l++) {
          int a1 = i + tx[k], a2 = j + ty[k], b1 = i + tx[l], b2 = j + ty[l];
          sv.insert(bz(f1(id[a1][a2]), f2(id[b1][b2])));
          if (bz(f1(id[a1][a2]), f1(id[b1][b2])) == bz(f1(s), f1(t))) ok = 1;
        }
    }
  if (ok) {
    while (q--) puts("NO");
    return 0;
  }
  while (q--) {
    int k, tp = 0;
    scanf("%d", &k);
    for (int i = 1; i <= k; i++) {
      scanf("%d%d", &x[i], &y[i]);
      a[x[i]][y[i]] = 1;
      st[++tp] = f1(id[x[i]][y[i]]);
      for (int j = 0; j <= 7; j++) {
        int nx = x[i] + tx[j], ny = y[i] + ty[j];
        if (a[nx][ny]) st[++tp] = f1(id[nx][ny]);
      }
    }
    st[++tp] = f1(s);
    st[++tp] = f1(t);
    sort(st + 1, st + tp + 1);
    tp = unique(st + 1, st + tp + 1) - st - 1;
    for (int i = 1; i <= k; i++)
      for (int j = 0; j <= 7; j++) {
        int nx = x[i] + tx[j], ny = y[i] + ty[j];
        if (a[nx][ny]) mg(id[nx][ny], id[x[i]][y[i]]);
      }
    int r = 1;
    for (int i = 1; i <= tp; i++)
      if (f2(st[i]) == f2(s))
        for (int j = 1; j <= tp; j++)
          if (f2(st[j]) == f2(t) && sv.count(bz(st[i], st[j]))) r = 0;
    puts(r ? "YES" : "NO");
    fflush(stdout);
    for (int i = 1; i <= k; i++) a[x[i]][y[i]] = 0;
    while (tp) {
      fa[st[tp]] = st[tp];
      tp--;
    }
  }
}
