#include<iostream>
#include<cstring>
using namespace std;
int n,m,q;
long long a[100010],b[100010],Bmax[100010][18],Bmin[100010][18],Amax[100010][18],Amin[100010][18],Abig[100010][18],Asmall[100010][18];
int log[100010],l1,l2,r1,r2;
void qmax(int n,long long x[],long long Max[][18]){
for(int i=1;i<=n;i++){
for(int j=0;j<=18;j++){
Max[i][j]=-0x3f3f3f3f3f3f3f3f;
}
}
for(int i=1;i<=n;i++) Max[i][0]=x[i];
for(int j=1;j<=18;j++)
for(int i=1;i+(1<<j)-1<=n;i++)
Max[i][j]=max(Max[i][j-1],Max[i+(1<<(j-1))][j-1]);
}
void qbig(int n,long long x[],long long Min[][18]){
for(int i=1;i<=n;i++){
for(int j=0;j<=18;j++){
Min[i][0]=0x3f3f3f3f3f3f3f3f;
}
}
for(int i=1;i<=n;i++) if(x[i]>0) Min[i][0]=x[i];
for(int j=1;j<=18;j++)
for(int i=1;i+(1<<j)-1<=n;i++){
Min[i][j]=min(Min[i][j-1],Min[i+(1<<(j-1))][j-1]);
}
}
void qsmall(int n,long long x[],long long Max[][18]){
for(int i=1;i<=n;i++){
if(x[i]>0){
Max[i][0]=-0x3f3f3f3f3f3f3f3f;
continue;
}
Max[i][0]=x[i];
}
for(int j=1;j<=18;j++)
for(int i=1;i+(1<<j)-1<=n;i++)
Max[i][j]=max(Max[i][j-1],Max[i+(1<<(j-1))][j-1]);
}
void qmin(int n,long long x[],long long Min[][18]){
for(int i=1;i<=n;i++){
for(int j=0;j<=18;j++){
Min[i][j]=0x3f3f3f3f3f3f3f3f;
}
}
for(int i=1;i<=n;i++) Min[i][0]=x[i];
for(int j=1;j<=18;j++)
for(int i=1;i+(1<<j)-1<=n;i++){
Min[i][j]=min(Min[i][j-1],Min[i+(1<<(j-1))][j-1]);
if(Min[i][j]==0){
}
}
}
long long minor(int l,int r,long long Min[][18]){
int h=log[r-l+1];
return min(Min[l][h],Min[r-(1<<h)+1][h]);
}
long long maxor(int l,int r,long long Max[][18]){
int h=log[r-l+1];
return max(Max[l][h],Max[r-(1<<h)+1][h]);
}
int main(){
//freopen("game.in","r",stdin);
//freopen("game.out","w",stdout);
cin>>n>>m>>q;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=m;i++){
cin>>b[i];
}
log[1]=0;
for(int i=2;i<=100000;i++){
log[i]=log[i/2]+1;
}
qmax(n,a,Amax);
qmax(m,b,Bmax);
qmin(n,a,Amin);
qmin(m,b,Bmin);
qbig(n,a,Abig);
qsmall(n,a,Asmall);
while(q--){
cin>>l1>>r1>>l2>>r2;
long long o=minor(l2,r2,Bmin),p=maxor(l2,r2,Bmax);
if(o>=0){
if(maxor(l1,r1,Amax)<0) cout<<p*maxor(l1,r1,Amax)<<endl;
else cout<<o*maxor(l1,r1,Amax)<<endl;
}else if(p<=0){
if(minor(l1,r1,Amin)>=0) cout<<o*minor(l1,r1,Amin)<<endl;
else cout<<p*minor(l1,r1,Amin)<<endl;
}else{
cout<<max(o*minor(l1,r1,Abig),p*maxor(l1,r1,Asmall))<<endl;
}
}
//fclose(stdin);
//fclose(stdout);
return 0;
}
官方40,民间65