#include<bits/stdc++.h>
using namespace std;
#define int long long
#define debug() puts("I WILL AK")
#define N 100007
#define INF 2000000000
int lg[N],a[N],b[N],amax[N][17],amin[N][17],bmax[N][17],bmin[N][17],amax1[N][17],amin1[N][17];
int n,m,q;
void init(){
lg[1]=0;
for(int i=2;i<=max(n,m);++i){
lg[i]=lg[i>>1]+1;
}
for(int i=1;i<=n;++i){
amax[i][0]=amin[i][0]=a[i];
amax1[i][0]=(a[i]<0?a[i]:-INF);
amin1[i][0]=(a[i]>=0?a[i]:INF);
}
for(int i=1;i<=m;++i){
bmax[i][0]=bmin[i][0]=b[i];
}
for(int j=1;j<=lg[n];j++){
for(int i=1;i+(1<<j)-1<=n;++i){
amax[i][j]=max(amax[i][j-1],amax[i+(1<<(j-1))][j-1]);
amax1[i][j]=max(amax1[i][j-1],amax1[i+(1<<(j-1))][j-1]);
amin[i][j]=min(amin[i][j-1],amin[i+(1<<(j-1))][j-1]);
amin1[i][j]=min(amin1[i][j-1],amin1[i+(1<<(j-1))][j-1]);
}
}
for(int j=1;j<=lg[m];j++){
for(int i=1;i+(1<<j)-1<=m;++i){
bmax[i][j]=max(bmax[i][j-1],bmax[i+(1<<(j-1))][j-1]);
bmin[i][j]=min(bmin[i][j-1],bmin[i+(1<<(j-1))][j-1]);
}
}
}
signed main(){
cin>>n>>m>>q;
for(int i=1;i<=n;++i){
cin>>a[i];
}
for(int i=1;i<=m;++i){
cin>>b[i];
}
init();
while(q--){
int l1,r1,l2,r2;
cin>>l1>>r1>>l2>>r2;
int k1=lg[r1-l1+1],k2=lg[r2-l2+1];
int amx=max(amax[l1][k1],amax[r1-(1<<k1)+1][k1]);
int amx1=max(amax1[l1][k1],amax1[r1-(1<<k1)+1][k1]);
int amn=min(amin[l1][k1],amin[r1-(1<<k1)+1][k1]);
int amn1=min(amin1[l1][k1],amin1[r1-(1<<k1)+1][k1]);
int bmx=max(bmax[l2][k2],bmax[r2-(1<<k2)+1][k2]);
int bmn=min(bmin[l2][k2],bmin[r2-(1<<k2)+1][k2]);
int ans=-INF;
max({ans,amx*(amx>=0?bmn:bmx),amn*(amn>=0?bmn:bmx)});
if(amx1!=-INF) ans=max({ans,amx1*(amx1>=0?bmn:bmx)});
if(amn1!=INF) ans=max({ans,amn1*(amn1>=0?bmn:bmx)});
cout<<ans<<'\n';
}
return 0;
}