#include<bits/stdc++.h>
using namespace std;
int n,q1;
unsigned long long ans=0,s=1,a[250000],b[250000],mxa=0,mxb=0;
void mxab(int p,int q)
{
	mxa=0,mxb=0;
	for(int i=p;i<=q;i++)
	{
		mxa=max(a[i],mxa);
		mxb=max(b[i],mxb);
	}
}
int main()
{
	freopen("match.in","r",stdin);
	freopen("match.out","w",stdout);
	int t;
	cin>>t>>n;
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
	}
	for(int i=1;i<=n;i++){
		scanf("%d",&b[i]);
	}
	cin>>q1;
	for(int i=1;i<=63;i++)
		s*=2;
	for(int i=1;i<=q1;i++)
	{
		int l,r;
		ans=0;
		scanf("%d%d",&l,&r);
		for(int j=l;j<=r;j++)
		{
			for(int k=j;k<=r;k++)
			{
				mxab(j,k);
				//cout<<mxa<<" "<<mxb<<endl;
				ans=ans+mxa*mxb;
				while(ans>s)
				{
					if(ans-s>s)
						ans-=s,ans-=s;
					else
						break;
				}
			}
		}
		cout<<ans<<endl;
	}
	
	return 0;
}