#include <bits/stdc++.h>
using namespace std;
#define FOR(i, a, b) for(int i = (a); i <= (b); ++i)
#define FORD(i, a, b) for(int i = (a); i >= (b); --i)
#define sz(a) (int)(a).size()
#define all(a) (a).begin(), (a).end()
#define bit(s, i) (((s) >> (i)) & 1)
#define ii pair <int, int>
#define fi first
#define se second
#define ll long long
#define int long long
#define eb emplace_back
#define pb push_back
#define __builtin_popcount __builtin_popcountll
template <class X, class Y>
bool maxi(X &x, Y y) {
if(x < y) {
x = y;
return true;
}
return false;
}
template <class X, class Y>
bool mini(X &x, Y y) {
if(x > y) {
x = y;
return true;
}
return false;
}
void solve();
int32_t main() {
#define task "test"
if(fopen(task".inp", "r")){
freopen(task".inp", "r", stdin);
freopen(task".out", "w", stdout);
}
cin.tie(0)->sync_with_stdio(0);
int tc = 1; //cin >> tc;
FOR(i, 1, tc){
solve();
}
}
const int N=1e3+5;
const int Q=1e6+5;
int n,m,q; bool ans[Q];
char a[N][N];
bitset<N> bs1[N][N],bs2[N][N];
ii p1[Q],p2[Q];
void dnc(int l, int r, vector<int> p){
if(l>r || sz(p)==0) return;
int mid=(l+r)>>1;
FOR(i,l-1,mid+1) FOR(j,0,m+1) bs1[i][j]=0;
FOR(i,mid-1,r+1) FOR(j,0,m+1) bs2[i][j]=0;
FORD(i,m,1){
if(a[mid][i]=='.'){
bs1[mid][i][i]=1;
bs1[mid][i]|=bs1[mid][i+1];
}
}
FORD(i,mid-1,l){
FORD(j,m,1) if(a[i][j]=='.'){
bs1[i][j]=bs1[i+1][j]|bs1[i][j+1];
}
}
FOR(i,1,m){
if(a[mid][i]=='.'){
bs2[mid][i][i]=1;
bs2[mid][i]|=bs2[mid][i-1];
}
}
FOR(i,mid+1,r){
FOR(j,1,m) if(a[i][j]=='.'){
bs2[i][j]=bs2[i][j-1]|bs2[i-1][j];
}
}
vector<int> lt,rt;
for(int i:p){
if(p2[i].fi<mid){
lt.eb(i);
}
else if(p1[i].fi>mid){
rt.eb(i);
}
else{
ans[i]=(bs1[p1[i].fi][p1[i].se]&bs2[p2[i].fi][p2[i].se]).any();
}
}
dnc(l,mid-1,lt);
dnc(mid+1,r,rt);
}
void solve() {
cin>>n>>m>>q;
FOR(i,1,n) FOR(j,1,m) cin>>a[i][j];
FOR(i,1,q) cin>>p1[i].fi>>p1[i].se>>p2[i].fi>>p2[i].se;
vector<int> p;
FOR(i,1,q){
if(p1[i].fi<=p2[i].fi&&p1[i].se<=p2[i].se) p.eb(i);
}
dnc(1,n,p);
FOR(i,1,q) cout<<(ans[i]?"YES\n":"NO\n");
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIEZPUihpLCBhLCBiKSBmb3IoaW50IGkgPSAoYSk7IGkgPD0gKGIpOyArK2kpCiNkZWZpbmUgRk9SRChpLCBhLCBiKSBmb3IoaW50IGkgPSAoYSk7IGkgPj0gKGIpOyAtLWkpCiNkZWZpbmUgc3ooYSkgKGludCkoYSkuc2l6ZSgpCiNkZWZpbmUgYWxsKGEpIChhKS5iZWdpbigpLCAoYSkuZW5kKCkKI2RlZmluZSBiaXQocywgaSkgKCgocykgPj4gKGkpKSAmIDEpCiNkZWZpbmUgaWkgcGFpciA8aW50LCBpbnQ+CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgZWIgZW1wbGFjZV9iYWNrCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgX19idWlsdGluX3BvcGNvdW50IF9fYnVpbHRpbl9wb3Bjb3VudGxsCgp0ZW1wbGF0ZSA8Y2xhc3MgWCwgY2xhc3MgWT4KICAgIGJvb2wgbWF4aShYICZ4LCBZIHkpIHsKICAgICAgICBpZih4IDwgeSkgewogICAgICAgICAgICB4ID0geTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCnRlbXBsYXRlIDxjbGFzcyBYLCBjbGFzcyBZPgogICAgYm9vbCBtaW5pKFggJngsIFkgeSkgewogICAgICAgIGlmKHggPiB5KSB7CiAgICAgICAgICAgIHggPSB5OwogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKdm9pZCBzb2x2ZSgpOwppbnQzMl90IG1haW4oKSB7CiAgICAjZGVmaW5lIHRhc2sgInRlc3QiCiAgICBpZihmb3Blbih0YXNrIi5pbnAiLCAiciIpKXsKICAgICAgICBmcmVvcGVuKHRhc2siLmlucCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4odGFzayIub3V0IiwgInciLCBzdGRvdXQpOwogICAgfQogICAgY2luLnRpZSgwKS0+c3luY193aXRoX3N0ZGlvKDApOwoKICAgIGludCB0YyA9IDE7IC8vY2luID4+IHRjOwogICAgRk9SKGksIDEsIHRjKXsKICAgICAgICBzb2x2ZSgpOwogICAgfQp9Cgpjb25zdCBpbnQgTj0xZTMrNTsKY29uc3QgaW50IFE9MWU2KzU7CgppbnQgbixtLHE7IGJvb2wgYW5zW1FdOwpjaGFyIGFbTl1bTl07CmJpdHNldDxOPiBiczFbTl1bTl0sYnMyW05dW05dOwppaSBwMVtRXSxwMltRXTsKCnZvaWQgZG5jKGludCBsLCBpbnQgciwgdmVjdG9yPGludD4gcCl7CiAgICBpZihsPnIgfHwgc3oocCk9PTApIHJldHVybjsKCiAgICBpbnQgbWlkPShsK3IpPj4xOwoKICAgIEZPUihpLGwtMSxtaWQrMSkgRk9SKGosMCxtKzEpIGJzMVtpXVtqXT0wOwogICAgRk9SKGksbWlkLTEscisxKSBGT1IoaiwwLG0rMSkgYnMyW2ldW2pdPTA7CiAgICBGT1JEKGksbSwxKXsKICAgICAgICBpZihhW21pZF1baV09PScuJyl7CiAgICAgICAgICAgIGJzMVttaWRdW2ldW2ldPTE7CiAgICAgICAgICAgIGJzMVttaWRdW2ldfD1iczFbbWlkXVtpKzFdOwogICAgICAgIH0KICAgIH0KICAgIEZPUkQoaSxtaWQtMSxsKXsKICAgICAgICBGT1JEKGosbSwxKSBpZihhW2ldW2pdPT0nLicpewogICAgICAgICAgICBiczFbaV1bal09YnMxW2krMV1bal18YnMxW2ldW2orMV07CiAgICAgICAgfQogICAgfQoKICAgIEZPUihpLDEsbSl7CiAgICAgICAgaWYoYVttaWRdW2ldPT0nLicpewogICAgICAgICAgICBiczJbbWlkXVtpXVtpXT0xOwogICAgICAgICAgICBiczJbbWlkXVtpXXw9YnMyW21pZF1baS0xXTsKICAgICAgICB9CiAgICB9CiAgICBGT1IoaSxtaWQrMSxyKXsKICAgICAgICBGT1IoaiwxLG0pIGlmKGFbaV1bal09PScuJyl7CiAgICAgICAgICAgIGJzMltpXVtqXT1iczJbaV1bai0xXXxiczJbaS0xXVtqXTsKICAgICAgICB9CiAgICB9CgogICAgdmVjdG9yPGludD4gbHQscnQ7CiAgICBmb3IoaW50IGk6cCl7CiAgICAgICAgaWYocDJbaV0uZmk8bWlkKXsKICAgICAgICAgICAgbHQuZWIoaSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYocDFbaV0uZmk+bWlkKXsKICAgICAgICAgICAgcnQuZWIoaSk7CiAgICAgICAgfQogICAgICAgIGVsc2V7CiAgICAgICAgICAgIGFuc1tpXT0oYnMxW3AxW2ldLmZpXVtwMVtpXS5zZV0mYnMyW3AyW2ldLmZpXVtwMltpXS5zZV0pLmFueSgpOwogICAgICAgIH0KICAgIH0KCiAgICBkbmMobCxtaWQtMSxsdCk7CiAgICBkbmMobWlkKzEscixydCk7Cn0KCnZvaWQgc29sdmUoKSB7CiAgICBjaW4+Pm4+Pm0+PnE7CiAgICBGT1IoaSwxLG4pIEZPUihqLDEsbSkgY2luPj5hW2ldW2pdOwogICAgRk9SKGksMSxxKSBjaW4+PnAxW2ldLmZpPj5wMVtpXS5zZT4+cDJbaV0uZmk+PnAyW2ldLnNlOwoKICAgIHZlY3RvcjxpbnQ+IHA7CiAgICBGT1IoaSwxLHEpewogICAgICAgIGlmKHAxW2ldLmZpPD1wMltpXS5maSYmcDFbaV0uc2U8PXAyW2ldLnNlKSBwLmViKGkpOwogICAgfQoKICAgIGRuYygxLG4scCk7CiAgICBGT1IoaSwxLHEpIGNvdXQ8PChhbnNbaV0/IllFU1xuIjoiTk9cbiIpOwp9Cg==