rt
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=1e5+10;
const long long inf=4557430888798830300;
int n,m,q;
long long a[N],b[N];
int 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];
while(q--)
{
int l1,r1,l2,r2;
cin>>l1>>r1>>l2>>r2;
long long minn=inf,maxx=-inf;
for(int i=l2;i<=r2;i++)
{
minn=min(minn,b[i]);
maxx=max(maxx,b[i]);
}
long long res=-inf;
int t1,t2;
if(minn>=0)
{
long long ans=-inf;
for(int i=l1;i<=r1;i++)
ans=max(ans,a[i]);
res=ans*minn;
}
else
{
long long ans=inf;
for(int i=l1;i<=r1;i++)
if(a[i]>=0)
ans=min(ans,a[i]);
if(ans!=inf)
res=ans*minn;
}
if(maxx<=0)
{
long long ans=inf;
for(int i=l1;i<=r1;i++)
ans=min(ans,a[i]);
res=max(res,ans*maxx);
}
else
{
long long ans=-inf;
for(int i=l1;i<=r1;i++)
if(a[i]<=0)
ans=max(ans,a[i]);
if(ans!=-inf)
res=max(res,ans*maxx);
}
cout<<res<<endl;
}
return 0;
}