thx
#include <bits/stdc++.h>
using namespace std;
#define int long long
#undef INT_MIN
#undef INT_MAX
#define INT_MIN LLONG_MIN
#define INT_MAX LLONG_MAX
int n,m,Q,l1,r1,l2,r2,a,b,x,y,p,q,ans;
int log_[100010];
int maxa[100010][25],mina[100010][25],maxaf[100010][25],minaz[100010][25];
int maxb[100010][25],minb[100010][25];
int mxa,mna,mxaf,mnaz;
int mxb,mnb;
signed main(){
cin>>n>>m>>Q;
for(int i=2;i<=max(n,m);i++)log_[i]=log_[i>>1]+1;
for(int i=1;i<=n;i++){
cin>>a;
maxa[i][0]=a;
mina[i][0]=a;
maxaf[i][0]=a<0?a:INT_MIN;
minaz[i][0]=a>=0?a:INT_MAX;
}
for(int j=1,k;j<=log_[n];j++)
for(int i=1;i+(1<<j)-1<=n;i++){
k=i+(1<<(j-1));
maxa[i][j]=max(maxa[i][j-1],maxa[k][j-1]);
maxaf[i][j]=max(maxaf[i][j-1],maxaf[k][j-1]);
mina[i][j]=min(mina[i][j-1],mina[k][j-1]);
minaz[i][j]=min(minaz[i][j-1],minaz[k][j-1]);
}
for(int j=1;j<=m;j++){
cin>>b;
maxb[j][0]=b;
minb[j][0]=b;
}
for(int j=1,k;j<=log_[m];j++)
for(int i=1;i+(1<<j)-1<=n;i++){
k=i+(1<<(j-1));
maxb[i][j]=max(maxb[i][j-1],maxb[k][j-1]);
minb[i][j]=min(minb[i][j-1],minb[k][j-1]);
}
while(Q--){
cin>>l1>>r1>>l2>>r2;
x=log_[r1-l1+1],y=log_[r2-l2+1];
p=r1-(1<<x)+1,q=r2-(1<<y)+1;
mxa=max(maxa[l1][x],maxa[p][x]);
mna=max(mina[l1][x],mina[p][x]);
mxaf=max(maxaf[l1][x],maxaf[p][x]);
mnaz=max(minaz[l1][x],minaz[p][x]);
mxb=max(maxb[l2][y],maxb[q][y]);
mnb=min(minb[l2][y],minb[q][y]);
ans=INT_MIN;
ans=max(ans,mxa*(mxa>=0?mnb:mxb));
ans=max(ans,mna*(mna>=0?mnb:mxb));
if(mxaf!=INT_MIN)ans=max(ans,mxaf*(mxaf>=0?mnb:mxb));
if(mnaz!=INT_MAX)ans=max(ans,mnaz*(mnaz>=0?mnb:mxb));
cout<<ans<<"\n";
}
cout<<endl;
return 0;
}