#include <bits/stdc++.h>
using namespace std;
const int delta_x[9] = {-1, -1, -1, 0, 0, 1, 1, 1, 0},
          delta_y[9] = {-1, 0, 1, -1, 1, -1, 0, 1, 0};
int n, m, pos[1005][1005], fat_n[1005005], fat_t[1005005], siz[1005005];
char map_s[1005][1005];
set<int> alm_set[1005005];
vector<pair<int, int> > temp_p;
int getfat_n(int u) {
  return u == fat_n[u] ? u : fat_n[u] = getfat_n(fat_n[u]);
}
int getfat_t(int u) { return u == fat_t[u] ? u : getfat_t(fat_t[u]); }
inline void merge_n(int u, int v) {
  if ((u = getfat_n(u)) != (v = getfat_n(v))) {
    siz[u] += siz[v];
    fat_n[v] = u;
  }
}
inline void merge_t(int u, int v) {
  if ((u = getfat_t(u)) != (v = getfat_t(v))) {
    if (siz[u] < siz[v]) swap(u, v);
    fat_t[v] = u;
    siz[u] += siz[v];
    temp_p.emplace_back(u, v);
  }
}
void sdfa(int u, int v, int w, set<int> &x) {
  if ((!pos[u][v]) || (u == 2 && v == 2) || (u == n - 1 && v == m - 1)) return;
  if (map_s[u][v] == 35) x.insert(getfat_n(pos[u][v]));
  if (w)
    for (int i = 0; i < 8; ++i) sdfa(u + delta_x[i], v + delta_y[i], w - 1, x);
}
int main() {
  int q, u[15], v[15], w;
  scanf("%d%d%d", &n, &m, &q);
  n += 2;
  m += 2;
  for (int i = 1, j = 1; i <= n; ++i)
    for (int k = 1; k <= m; ++j, ++k) pos[i][k] = fat_n[j] = j;
  for (int i = 2; i < n; ++i) scanf("%s", map_s[i] + 2);
  for (int i = 3; i <= m; ++i) map_s[1][i] = 35;
  for (int i = 2; i < n - 2; ++i) map_s[i][m] = 35;
  for (int i = 1; i < m - 2; ++i) map_s[n][i] = 35;
  for (int i = 3; i <= n; ++i) map_s[i][1] = 35;
  for (int i = 1; i <= n; ++i)
    for (int j = 1; j <= m; ++j)
      if (map_s[i][j] == 35)
        for (int k = 0; k < 8; ++k)
          if (map_s[i + delta_x[k]][j + delta_y[k]] == 35)
            merge_n(pos[i][j], pos[i + delta_x[k]][j + delta_y[k]]);
  for (int i = 1; i <= n; ++i)
    for (int j = 1; j <= m; ++j) sdfa(i, j, 2, alm_set[getfat_n(pos[i][j])]);
  memcpy(fat_t, fat_n, sizeof fat_t);
  while (q--) {
    scanf("%d", &w);
    for (int i = 0; i < w; ++i) {
      scanf("%d%d", &u[i], &v[i]);
      map_s[++u[i]][++v[i]] = 35;
    }
    for (int i = 0; i < w; ++i)
      for (int j = 0; j < 8; ++j)
        if (map_s[u[i] + delta_x[j]][v[i] + delta_y[j]] == 35)
          merge_t(pos[u[i]][v[i]], pos[u[i] + delta_x[j]][v[i] + delta_y[j]]);
    for (int i = 0; i < w; ++i)
      for (int j = 0; j < 9; ++j)
        if (pos[u[i] + delta_x[j]][v[i] + delta_y[j]]) {
          if (getfat_t(pos[u[i] + delta_x[j]][v[i] + delta_y[j]]) ==
              getfat_t(pos[n][1]))
            for (const auto &k :
                 alm_set[getfat_n(pos[u[i] + delta_x[j]][v[i] + delta_y[j]])])
              if (getfat_t(k) == getfat_t(pos[1][m])) {
                puts("NO");
                goto query_end;
              }
          if (getfat_t(pos[u[i] + delta_x[j]][v[i] + delta_y[j]]) ==
              getfat_t(pos[1][m]))
            for (const auto &k :
                 alm_set[getfat_n(pos[u[i] + delta_x[j]][v[i] + delta_y[j]])])
              if (getfat_t(k) == getfat_t(pos[n][1])) {
                puts("NO");
                goto query_end;
              }
        }
    for (int i = 0; i < w; ++i)
      for (int j = i + 1; j < w; ++j)
        if (max(abs(u[i] - u[j]), abs(v[i] - v[j])) < 3 &&
            ((getfat_t(pos[u[i]][v[i]]) == getfat_t(pos[n][1]) &&
              getfat_t(pos[u[j]][v[j]]) == getfat_t(pos[1][m])) ||
             (getfat_t(pos[u[i]][v[i]]) == getfat_t(pos[1][m]) &&
              getfat_t(pos[u[j]][v[j]]) == getfat_t(pos[n][1])))) {
          puts("NO");
          goto query_end;
        }
    puts("YES");
  query_end:
    reverse(temp_p.begin(), temp_p.end());
    for (const auto &i : temp_p)
      siz[i.first] -= siz[fat_t[i.second] = i.second];
    for (int i = 0; i < w; ++i) map_s[u[i]][v[i]] = 46;
    temp_p.clear();
    fflush(stdout);
  }
  return 0;
}
