#include<bits/stdc++.h>
using namespace std;
int n,m,q,l1,l2,r1,r2,a[100005],b[100005],t,c[100005],tt;
long long int mxza[100005][20],miza[100005][20],mxfa[100005][20],mifa[100005][20];
long long int mxzb[100005][20],mizb[100005][20],mxfb[100005][20],mifb[100005][20];
long long int ans;
int lb(int x){
return x&-x;
}
void upd(){
mxza[0][0]=0;
mxfa[0][0]=0;
miza[0][0]=1000000009;
mifa[0][0]=1000000009;
mxzb[0][0]=0;
mxfb[0][0]=0;
mizb[0][0]=1000000009;
mifb[0][0]=1000000009;
t=r1-l1+1;
while(t){
tt=lb(t);
t-=tt;
mxza[0][0]=max(mxza[0][0],mxza[l1][c[tt]]);
mxfa[0][0]=max(mxfa[0][0],mxfa[l1][c[tt]]);
miza[0][0]=min(miza[0][0],miza[l1][c[tt]]);
mifa[0][0]=min(mifa[0][0],mifa[l1][c[tt]]);
l1+=tt;
}
t=r2-l2+1;
while(t){
tt=lb(t);
t-=tt;
mxzb[0][0]=max(mxzb[0][0],mxzb[l2][c[tt]]);
mxfb[0][0]=max(mxfb[0][0],mxfb[l2][c[tt]]);
mizb[0][0]=min(mizb[0][0],mizb[l2][c[tt]]);
mifb[0][0]=min(mifb[0][0],mifb[l2][c[tt]]);
l2+=tt;
}
}
int main(){
cin>>n>>m>>q;
t=1;
for(int i=0;(1<<i)<=max(n,m);i++){
c[(1<<i)]=i;
}
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=m;i++){
cin>>b[i];
}
for(int i=0;i<=n;i++){
for(int j=0;(1<<j)<=n;j++){
mxza[i][j]=0;mxfa[i][j]=0;
miza[i][j]=1000000009;mifa[i][j]=1000000009;
}
}
for(int i=1;i<=n;i++){
if(a[i]>=0){
mxza[i][0]=max(0,a[i]);
miza[i][0]=min(1000000009,a[i]);
}
if(a[i]<=0){
mxfa[i][0]=max(0,-1*a[i]);
mifa[i][0]=min(1000000009,-1*a[i]);
}
}
for(int i=1;(1<<i)<=n;i++){
for(int j=1;j+(1<<(i-1))<=n;j++){
mxza[j][i]=max(mxza[j][i-1],mxza[j+(1<<(i-1))][i-1]);
mxfa[j][i]=max(mxfa[j][i-1],mxfa[j+(1<<(i-1))][i-1]);
miza[j][i]=min(miza[j][i-1],miza[j+(1<<(i-1))][i-1]);
mifa[j][i]=min(mifa[j][i-1],mifa[j+(1<<(i-1))][i-1]);
}
}
for(int i=0;i<=m;i++){
for(int j=0;(1<<j)<=m;j++){
mxzb[i][j]=0;mxfb[i][j]=0;
mizb[i][j]=1000000009;mifb[i][j]=1000000009;
}
}
for(int i=1;i<=m;i++){
if(b[i]>=0){
mxzb[i][0]=max(0,b[i]);
mizb[i][0]=min(1000000009,b[i]);
}
if(b[i]<=0){
mxfb[i][0]=max(0,-1*b[i]);
mifb[i][0]=min(1000000009,-1*b[i]);
}
}
for(int i=1;(1<<i)<=m;i++){
for(int j=1;j+(1<<(i-1))<=m;j++){
mxzb[j][i]=max(mxzb[j][i-1],mxzb[j+(1<<(i-1))][i-1]);
mxfb[j][i]=max(mxfb[j][i-1],mxfb[j+(1<<(i-1))][i-1]);
mizb[j][i]=min(mizb[j][i-1],mizb[j+(1<<(i-1))][i-1]);
mifb[j][i]=min(mifb[j][i-1],mifb[j+(1<<(i-1))][i-1]);
}
}
while(q--){
cin>>l1>>r1>>l2>>r2;
upd();
if(mifb[0][0]!=1000000009&&mizb[0][0]!=1000000009){
ans=-1*min(miza[0][0]*mxfb[0][0],mifa[0][0]*mxzb[0][0]);
cout<<ans<<endl;
continue;
}
if(mifb[0][0]==1000000009){
if(miza[0][0]!=1000000009){
ans=mizb[0][0]*mxza[0][0];
cout<<ans<<endl;
}
else{
ans=-1*mxzb[0][0]*mifa[0][0];
cout<<ans<<endl;
}
continue;
}
if(mifa[0][0]!=1000000009){
ans=mxfa[0][0]*mifb[0][0];
cout<<ans<<endl;
}
else {
ans=-1*mxfb[0][0]*miza[0][0];
cout<<ans<<endl;
}
}
return 0;
}