#include<bits/stdc++.h>
using namespace std;
inline long long read(){
register long long x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-') f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*f;
}
int n,m,q,lg[100001];
long long max_a[100001][21],min_a[100001][21],max_b[100001][21],min_b[100001][21],min_za[100001][21],max_fa[100001][21];
int main(){
scanf("%d%d%d",&n,&m,&q);
for(int i=2;i<=max(n,m);i++) lg[i]=lg[i/2]+1;
for(int i=1;i<=n;i++){
min_a[i][0]=max_a[i][0]=read();
if(min_a[i][0]>=0) min_za[i][0]=min_a[i][0];
else min_za[i][0]=1e16;
if(min_a[i][0]<=0) max_fa[i][0]=min_a[i][0];
else max_fa[i][0]=-1e16;
}
for(int i=1;i<=m;i++) min_b[i][0]=max_b[i][0]=read();
for(int k=1;k<=lg[n];k++){
for(int i=1;i+(1<<(k-1))<=n;i++){
min_a[i][k]=min(min_a[i][k-1],min_a[i+(1<<(k-1))][k-1]);
max_a[i][k]=max(max_a[i][k-1],max_a[i+(1<<(k-1))][k-1]);
min_za[i][k]=min(min_za[i][k-1],min_za[i+(1<<(k-1))][k-1]);
max_fa[i][k]=max(max_fa[i][k-1],max_fa[i+(1<<(k-1))][k-1]);
}
}
for(int k=1;k<=lg[m];k++){
for(int i=1;i+(1<<(k-1))<=m;i++){
min_b[i][k]=min(min_b[i][k-1],min_b[i+(1<<(k-1))][k-1]);
max_b[i][k]=max(max_b[i][k-1],max_b[i+(1<<(k-1))][k-1]);
}
}
while(q--){
int l1=(int)read(),r1=(int)read(),l2=(int)read(),r2=(int)read(),ka=lg[r1-l1+1],kb=lg[r2-l2+1];
long long a_min=max(min_a[l1][ka],min_a[r1-(1<<ka)+1][ka]),a_max=max(max_a[l1][ka],max_a[r1-(1<<ka)+1][ka]),za_min=min(min_za[l1][ka],min_za[r1-(1<<ka)+1][ka]),fa_max=max(max_fa[l1][ka],max_fa[r1-(1<<ka)+1][ka]),b_min=min(min_b[l2][kb],min_b[r2-(1<<kb)+1][kb]),b_max=max(max_b[l2][kb],max_b[r2-(1<<kb)+1][kb]);
if(a_min>=0){
if(b_min>=0) printf("%lld\n",a_max*b_min);
else if(b_max<=0) printf("%lld\n",za_min*b_min);
else printf("%lld\n",za_min*b_min);
}
else if(a_max<=0){
if(b_min>=0) printf("%lld\n",fa_max*b_max);
else if(b_max<=0) printf("%lld\n",a_min*b_max);
else printf("%lld\n",fa_max*b_max);
}
else{
if(b_min>=0) printf("%lld\n",a_max*b_min);
else if(b_max<=0) printf("%lld\n",a_min*b_max);
else printf("%lld\n",max(za_min*b_min,fa_max*b_max));
}
}
return 0;
}
st也许大概应该没有打错,顺便问一下CQ这次-S一等线大概多少啊