#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn=1e5+10;
int n,m,q,a[maxn],b[maxn],lg[maxn];
LL minaz[maxn][30],minaf[maxn][30],maxaz[maxn][30],maxaf[maxn][30],maxb[maxn][30],minb[maxn][30];
void ST_min(int n,LL st[maxn][30]){
for(int k=1;k<=29;k++){
for(int i=1;i+(1<<k)-1<=n;i++){
st[i][k]=min(st[i][k-1],st[i+(1<<(k-1))][k-1]);
}
}
return ;
}
void ST_max(int n,LL st[maxn][30]){
for(int k=1;k<=29;k++){
for(int i=1;i+(1<<k)-1<=n;i++){
st[i][k]=max(st[i][k-1],st[i+(1<<(k-1))][k-1]);
}
}
return ;
}
LL qmin(int l,int r,LL st[maxn][30]){
int k=lg[r-l+1];
LL tmp=min(st[l][k],st[r-(1<<k)+1][k]);
return tmp;
}
LL qmax(int l,int r,LL st[maxn][30]){
int k=lg[r-l+1];
return max(st[l][k],st[r-(1<<k)+1][k]);
}
int main(){
ios::sync_with_stdio(false);
std::cin.tie(0);
std::cout.tie(0);
// freopen("game.in","r",stdin);
// freopen("game.out","w",stdout);
cin>>n>>m>>q;
lg[0]=-1;
for(int i=1;i<=n;i++) lg[i]=lg[i/2]+1;
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<maxn;i++) for(int k=0;k<=29;k++) minaz[i][k]=1e9;
for(int i=0;i<maxn;i++) for(int k=0;k<=29;k++) minaf[i][k]=1e9;
for(int i=0;i<maxn;i++) for(int k=0;k<=29;k++) minb[i][k]=1e9;
for(int i=0;i<maxn;i++) for(int k=0;k<=29;k++) maxaz[i][k]=-1e9;
for(int i=0;i<maxn;i++) for(int k=0;k<=29;k++) maxaf[i][k]=-1e9;
for(int i=0;i<maxn;i++) for(int k=0;k<=29;k++) maxb[i][k]=-1e9;
for(int i=1;i<=n;i++){
if(a[i]>=0)minaz[i][0]=maxaz[i][0]=a[i];
if(a[i]<=0) maxaf[i][0]=minaf[i][0]=-a[i];
}
for(int i=1;i<=m;i++) minb[i][0]=maxb[i][0]=b[i];
ST_min(n,minaz);
ST_min(n,minaf);
ST_min(m,minb);
ST_max(n,maxaz);
ST_max(n,maxaf);
ST_max(m,maxb);
// for(int i=1;i<=n;i++){
// for(int j=i;j<=n;j++) cout<<i<<' '<<j<<' '<<qmin(i,j,minaz)<<endl;
// }
while(q--){
int l1,r1,l2,r2;
LL ans1=-1e18,ans2=-1e18;
cin>>l1>>r1>>l2>>r2;
if(qmin(l2,r2,minb)>0) ans1=qmax(l1,r1,maxaz)*qmin(l2,r2,minb);
if(qmin(l2,r2,minb)<=0) ans1=qmin(l1,r1,minaz)*qmin(l2,r2,minb);
if(qmax(l2,r2,maxb)>0) ans2=qmin(l1,r1,minaf)*qmax(l2,r2,maxb);
if(qmax(l2,r2,maxb)<=0) ans2=qmax(l1,r1,maxaf)*qmax(l2,r2,maxb);
cout<<max(ans1,-ans2);
cout<<endl;
}
return 0;
}
考场上大数据没过,但是来不及改了