#include <bits/stdc++.h>
using namespace std;
const int maxn = 100005;
const int maxm = -100005;
int n,m,q,A[maxn],B[maxn];
struct ver{
int biao,num;
}VA[maxn],VB[maxn];
int l1 = 0, l2 = 0, r1 = 0, r2 = 0, x = maxm, y = maxn;
bool cmpare(const ver &a, const ver &b){
return a.num > b.num;
}
int main(){
cin >> n >> m >> q;
for(int i = 1; i <= n; i++){
cin >> A[i];
VA[i].num = A[i];
VA[i].biao = i;
}
for(int i = 1; i <= m; i++){
cin >> B[i];
VB[i].num = B[i];
VB[i].biao = i;
}
sort(VA, VA+n,cmpare);
sort(VB, VB+m,cmpare);
l1 = 0, l2 = 0, r1 = 0, r2 = 0, x = maxm, y = maxn;
for(int i = 1; i <= q; i++){
cin >> l1 >> r1 >> l2 >> r2;
for(int j = 1; j <= n; j++){
if(VA[j].num > A[x] && VA[j].biao > l1 && VA[j].biao < r1){
x = VA[j].biao;
}
}
for(int j = m; j >= 0; j--){
if(VB[j].num < B[y] && VB[j].biao > l2 && VB[j].biao < r2){
y = VB[j].biao;
}
}
cout << VA[x].num * VB[y].num << endl;
l1 = 0, l2 = 0, r1 = 0, r2 = 0, x = maxm, y = maxn;
}
return 0;
}