#include<bits/stdc++.h>
using namespace std;
long long a[3005],b[3005];
long long ans=0;
const long long maxn=pow(2,32);
bool toobig=0;
int main(){
    freopen("match.in","r",stdin);
    freopen("match.out","w",stdout);
    int T,n;
    cin>>T>>n;
    for(int i=1;i<=n;i++)cin>>a[i];
    for(int i=1;i<=n;i++)cin>>b[i];
    int q;
    cin>>q;
    while(q--){
        ans=0;
        int l,r;
        cin>>l>>r;
        for(int i=l;i<=r;i++){
            for(int j=i;j<=r;j++){
                long long now=-1;
                for(int k=i;k<=j;k++){
                    for(int kk=i;kk<=j;kk++){
                        now=max(now,a[k]*b[kk]);
                    }
                }

                ans+=now;
                if(ans>=maxn){
                    ans-=maxn;
                    toobig=!toobig;
                }
                cout<<">>>"<<maxn<<endl;
            }
        }
        cout<<ans+toobig*maxn<<endl;
    }

    return 0;
}
