#include<bits/stdc++.h>
#define int long long
using namespace std;
const int INF=0x3f3f3f3f;
template<typename T>
inline void in(T &x){
char c=getchar();bool f=0;
while (c<'0'||c>'9') {
if (c=='-') f=1;
c=getchar();
}
for (x=0;c>='0'&&c<='9';c=getchar())
x=(x<<3)+(x<<1)+(c&15);
x=f?-x:x;
}
template<typename T>
inline void out(T x){
if(x<0) putchar('-'),x=-x;
if(x/10) out(x/10);
putchar((x%10)|48);
}
const int N=1e5+5;
int n,m,q;
int st1[N][27],st2[N][27];
int st5[N][27],st6[N][27];
int st3[N][27],st4[N][27];
int lg[N];
int a[N],b[N];
signed main(){
in(n);in(m);in(q);
lg[0]=-1;
for(register int i=1;i<=max(n,m);i++)
lg[i]=lg[i>>1]+1;
for(register int i=1;i<=n;i++)
in(a[i]);
for(register int i=1;i<=m;i++)
in(b[i]);
for(int i=1;i<=n;i++){
st1[i][0]=a[i];
st2[i][0]=a[i];
st5[i][0]=a[i]>=0?a[i]:INF;
st6[i][0]=a[i]<0?a[i]:-INF;
}
for(register int k=1;k<=lg[n];k++)
for(register int i=1;i+(1<<k)-1<=n;i++){
st1[i][k]=max(st1[i][k-1],st1[i+(1<<k-1)][k-1]);
st2[i][k]=min(st2[i][k-1],st2[i+(1<<k-1)][k-1]);
st5[i][k]=min(st5[i][k-1],st5[i+(1<<k-1)][k-1]);
st6[i][k]=max(st6[i][k-1],st6[i+(1<<k-1)][k-1]);
}
for(int i=1;i<=m;i++){
st3[i][0]=b[i];
st4[i][0]=b[i];
}
for(register int k=1;k<=lg[m];k++)
for(register int i=1;i+(1<<k)-1<=m;i++){
st3[i][k]=max(st3[i][k-1],st3[i+(1<<k-1)][k-1]);
st4[i][k]=min(st4[i][k-1],st4[i+(1<<k-1)][k-1]);
}
while(q--){
int l1,r1,l2,r2;
in(l1);in(r1);in(l2);in(r2);
int mia=lg[r1-l1],mib=lg[r2-l2];
int _1=max(st1[l1][mia],st1[r1-(1<<mia)+1][mia]);
int _2=min(st2[l1][mia],st2[r1-(1<<mia)+1][mia]);
int _3=max(st3[l2][mib],st3[r2-(1<<mib)+1][mib]);
int _4=min(st4[l2][mib],st4[r2-(1<<mib)+1][mib]);
int _5=min(st5[l1][mia],st5[r1-(1<<mia)+1][mia]);
int _6=max(st6[l1][mia],st6[r1-(1<<mia)+1][mia]);
int ans=_1*(_1>=0?_4:_3);
ans=max(ans,_2*(_2>=0?_4:_3));
if(_6!=-INF) ans=max(ans,_6*(_6>=0?_4:_3));
if(_5!=INF) ans=max(ans,_5*(_5>=0?_4:_3));
out(ans);
putchar('\n');
}
return 0;
}
record