#include<bits/stdc++.h>
#define re register
#define il inline
using namespace std;
const int N=1e5+20;
int n,m,q,l1,l2,r1,r2,k;
int log_2[N],mx[N][20],mn[N][20],mx2[N][20],mn2[N][20];
int mx3[N][20],mn3[N][20];
bool zero[N][20],ok;
int d1,d2,x1,x2,d3,x3;
long long ans;
il void pre()
{
log_2[1]=0;
for(re int i=2;i<=2e5;i++)
{
log_2[i]=log_2[i>>1]+1;
}
}
il void st()
{
for(re int j=1;j<=log_2[n];j++)
{
for(re int i=1;i+(1<<j)-1<=n;i++)
{
mx[i][j]=max(mx[i][j-1],mx[i+(1<<j-1)][j-1]);
mn[i][j]=min(mn[i][j-1],mn[i+(1<<j-1)][j-1]);
zero[i][j]=zero[i][j-1]|zero[i+(1<<j-1)][j-1];
mx3[i][j]=max(mx3[i][j-1],mx3[i+(1<<j-1)][j-1]);
mn3[i][j]=min(mn3[i][j-1],mn3[i+(1<<j-1)][j-1]);
}
}
for(re int j=1;j<=log_2[m];j++)
{
for(re int i=1;i+(1<<j)-1<=n;i++)
{
mx2[i][j]=max(mx2[i][j-1],mx2[i+(1<<j-1)][j-1]);
mn2[i][j]=min(mn2[i][j-1],mn2[i+(1<<j-1)][j-1]);
}
}
}
il void provide()
{
k=log_2[r1-l1+1];
d1=max(mx[l1][k],mx[r1-(1<<k)+1][k]);
x1=min(mn[l1][k],mn[r1-(1<<k)+1][k]);
ok=zero[l1][k]|zero[r1-(1<<k)+1][k];
d3=max(mx3[l1][k],mx3[r1-(1<<k)+1][k]);
x3=min(mn3[l1][k],mn3[r1-(1<<k)+1][k]);
k=log_2[r2-l2+1];
d2=max(mx2[l2][k],mx2[r2-(1<<k)+1][k]);
x2=min(mn2[l2][k],mn2[r2-(1<<k)+1][k]);
}
int main()
{
scanf("%d%d%d",&n,&m,&q);
pre();
for(re int i=1;i<=n;i++)
{
scanf("%d",&mx[i][0]);
mn[i][0]=mx[i][0];
if(mx[i][0]==0) zero[i][0]=true;
if(mx[i][0]<0) mx3[i][0]=mx[i][0];
else mx3[i][0]=INT_MIN;
if(mx[i][0]>0) mn3[i][0]=mx[i][0];
else mn3[i][0]=INT_MAX;
}
for(re int i=1;i<=m;i++)
{
scanf("%d",&mx2[i][0]);
mn2[i][0]=mx2[i][0];
}
st();
while(q--)
{
scanf("%d%d%d%d",&l1,&r1,&l2,&r2);
provide();
if(x2>0)
{
if(d1>0)
{
printf("%lld\n",(long long)d1*x2);
continue;
}
if(d1<0)
{
printf("%lld\n",(long long)d1*d2);
continue;
}
puts("0");
continue;
}
if(x2<0&&d2<0)
{
if(x1>0)
{
printf("%lld\n",(long long)x1*x2);
continue;
}
if(x1<0)
{
printf("%lld\n",(long long)x1*d2);
continue;
}
puts("0");
continue;
}
if(x1<0&&d1<0)
{
printf("%lld\n",(long long)d1*d2);
continue;
}
if(x1>0&&d1>0)
{
printf("%lld\n",(long long)x1*x2);
continue;
}
ans=max((long long)d3*d2,(long long)x3*x2);
if(ans<0&&(ok)) ans=0;
printf("%lld\n",ans);
}
return 0;
}