#include <cstdio>
#include <cstring>
#include <climits>
#include <algorithm>
#include <vector>

using namespace std;

int n, dat[(1 << 21) - 1];

void init(int size)
{
    int i;
    n = 1;
    while (n < size){
        n *= 2;
    }
    
    for (i = 0; i < 2 * n - 1; i++){
        dat[i] = INT_MAX;
    }
}

void update(int k, int x)
{
    k += n - 1;
    dat[k] = x;
    while (k > 0){
        k = (k - 1) / 2;
        dat[k] = min(dat[k * 2 + 1], dat[k * 2 + 2]);
    }
}


int x1, x2, y1, y2;
int w, h, q;

int query(int a, int b, int k, int l, int r)
{
    int vl, vr;
    
    if (r <= a || b <= l){
        return (INT_MAX);
    }
    if (a <= l && r <= b){
        return (dat[k]);
    }
    else {
        vl = query(a, b, k * 2 + 1, l, (l + r) / 2);
        vr = query(a, b, k * 2 + 2, (l + r) / 2, r);
        return (min(vl, vr));
    }
}

int main(void)
{
    int t;
    int i, j;
    int ans;
    
    while (1){
        scanf("%d%d%d", &h, &w, &q);
        
        if (w + h + q == 0){
            break;
        }
        
        init(w * h);
        if (h >= w){
	        for (i = 0; i < h; i++){
    	        for (j = 0; j < w; j++){
        	        scanf("%d", &t);
            	    update(i * w + j, t);
            	}
        	}
        }
        else {
        	for (i = 0; i < h; i++){
        		for (j = 0; j < w; j++){
        			scanf("%d", &t);
        			update(i + j * h, t);
        		}
        	}
        }
        
        for (j = 0; j < q; j++){
            scanf("%d%d%d%d", &y1, &x1, &y2, &x2);
            ans = INT_MAX;
            if (x1 == 0 && x2 == w - 1){
            	printf("%d\n", query(y1 * w + x1, y2 * w + x2 + 1, 0, 0, n));
            }
            else {
            	if (h >= w){
		            for (int k = y1; k <= y2; k++){
    		        	ans = min(ans, query(k * w + x1, k * w + x2 + 1, 0, 0, n));
        		    }
        		}
        		else {
        			for (int k = x1; k <= x2; k++){
        				ans = min(ans, query(k * h + y1, k * h + y2 + 1, 0, 0, n));
        			}
        		}
            	printf("%d\n", ans);
            }
        }
    }
    
    return (0);
}