rt
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define N 100005
#define fN -1000050000
#define zN 1000050000
#define int long long
int nl,ml,a[N],b[N],lh[N];
#define mx(a,b) ((a)>(b)?(a):(b))
#define mn(a,b) ((a)<(b)?(a):(b))
#define gc getchar
#define K(a,b) (fN<=(b)&&(b)<=zN?(b):(a))
int re(){
int ss=0,f1=0;
char f=gc();
while(f<'0'||f>'9')
f1|=(f=='-'),f=gc();
while('0'<=f&&f<='9')
ss=ss*10+f-'0',f=gc();
return f1?-ss:ss;
}
struct xy{
int fx[N][22],zx[N][22];
int fy[N][22],zy[N][22];
xy(){
memset(fx,128,sizeof fx);
memset(zx,-1,sizeof zx);
memset(fy,1,sizeof fy);
memset(zy,0x3f3f3f,sizeof zy);
return ;
}
inline void init(int x[],int n){
int i,j;
for(i=1;i<=n;++i){
if(x[i]<0){
fx[i][0]=mx(fx[i][0],x[i]);
fy[i][0]=mn(fy[i][0],x[i]);
}else{
zx[i][0]=mx(zx[i][0],x[i]);
zy[i][0]=mn(zy[i][0],x[i]);
}
}
for(j=1;j<=lh[n];++j)
for(i=1;i+(1<<j)-1<=n;++i){
fx[i][j]=mx(fx[i][j-1],fx[i+(1<<(j-1))][j-1]);
fy[i][j]=mn(fy[i][j-1],fy[i+(1<<(j-1))][j-1]);
zx[i][j]=mx(zx[i][j-1],zx[i+(1<<(j-1))][j-1]);
zy[i][j]=mn(zy[i][j-1],zy[i+(1<<(j-1))][j-1]);
}
}
}xa,xb;
signed main(){
nl=re();ml=re();
int i,q=re(),l,r,k,zx,zy,fx,fy;
for(i=1;i<=nl;++i)a[i]=re();
for(i=1;i<=ml;++i)b[i]=re();
for(i=2;i<=mx(nl,ml);++i) lh[i]=lh[i>>1]+1;
xa.init(a,nl);
xb.init(b,ml);
int x1,x2,x3,x4,ans;
for(i=1;i<=q;++i){
l=re();r=re();
k=lh[r-l+1];
fx=mx(xa.fx[l][k],xa.fx[r-(1<<k)+1][k]);
fy=mn(xa.fy[l][k],xa.fy[r-(1<<k)+1][k]);
zx=mx(xa.zx[l][k],xa.zx[r-(1<<k)+1][k]);
zy=mn(xa.zy[l][k],xa.zy[r-(1<<k)+1][k]);
/*
2 2 1
-1 -2
1 -1 -3
1 2 2 3
*/
x1=x2=x3=x4=9999999999;
l=re();r=re();
k=lh[r-l+1];
x1=mn( K(x1,fx*mx(xb.fx[l][k],xb.fx[r-(1<<k)+1][k]) ) ,mn( K(x1,fx*mn(xb.fy[l][k],xb.fy[r-(1<<k)+1][k])) ,
mn( K(x1,fx*mx(xb.zx[l][k],xb.zx[r-(1<<k)+1][k])),K(x1,fx*mn(xb.zy[l][k],xb.zy[r-(1<<k)+1][k]) ))));
x2=mn( K(x2,fy*mx(xb.fx[l][k],xb.fx[r-(1<<k)+1][k]) ) ,mn( K(x2,fy*mn(xb.fy[l][k],xb.fy[r-(1<<k)+1][k])) ,
mn( K(x2,fy*mx(xb.zx[l][k],xb.zx[r-(1<<k)+1][k])),K(x2,fy*mn(xb.zy[l][k],xb.zy[r-(1<<k)+1][k]) ))));
x3=mn( K(x3,zx*mx(xb.fx[l][k],xb.fx[r-(1<<k)+1][k]) ) ,mn( K(x3,zx*mn(xb.fy[l][k],xb.fy[r-(1<<k)+1][k])) ,
mn( K(x3,zx*mx(xb.zx[l][k],xb.zx[r-(1<<k)+1][k])),K(x3,zx*mn(xb.zy[l][k],xb.zy[r-(1<<k)+1][k])))));
x4=mn( K(x4,zy*mx(xb.fx[l][k],xb.fx[r-(1<<k)+1][k]) ) ,mn( K(x4,zy*mn(xb.fy[l][k],xb.fy[r-(1<<k)+1][k])) ,
mn( K(x4,zy*mx(xb.zx[l][k],xb.zx[r-(1<<k)+1][k])),K(x4,zy*mn(xb.zy[l][k],xb.zy[r-(1<<k)+1][k])))));
ans=mx(x1,K(x1,mx(x2,K(x2,mx(x3,K(x3,x4))))));
printf("%lld\n",ans);
}
return 0;
}