#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=250010;
int t,n,q,a[N],b[N],sum[N],ans;
struct hhh
{
	int ans1,ans2,l,r,mid;
} v[4*N];
void pushup1(int x)
{
	v[x].ans1=max(v[2*x].ans1,v[2*x+1].ans1);
}
void pushup(int x)
{
	v[x].ans2=max(v[2*x].ans2,v[2*x+1].ans2);
}
void build(int x,int s,int t)
{
	v[x].l=s; v[x].r=t; v[x].mid=(s+t)/2;
	if(s==t)
	{
		v[x].ans1=a[s];
		v[x].ans2=b[s];
		return ;
	}
	build(2*x,s,v[x].mid);
	build(2*x+1,v[x].mid+1,t);
	pushup1(x); pushup(x);
}
int ask1(int x,int s,int t)
{
	if(v[x].l>=s&&v[x].r<=t) return v[x].ans1;
	int anss=0;
	if(v[x].mid>=s) anss=max(anss,ask1(2*x,s,t));
	if(v[x].mid<t) anss=max(anss,ask1(2*x+1,s,t));
	return anss;
}
int ask2(int x,int s,int t)
{
	if(v[x].l>=s&&v[x].r<=t) return v[x].ans2;
	int anss=0;
	if(v[x].mid>=s) anss=max(anss,ask2(2*x,s,t));
	if(v[x].mid<t) anss=max(anss,ask2(2*x+1,s,t));
	return anss;
}
signed main()
{
	freopen("match.in","r",stdin);
	freopen("match.out","w",stdout);
	ios::sync_with_stdio(false);
	int s,t;
	cin>>t>>n;//buhuigaojinshao40pts----
	for(int i=1;i<=n;i++) cin>>a[i];
	for(int i=1;i<=n;i++) cin>>b[i];
	if((t>=10&&t<=13))
	{
		for(int i=1;i<=n;i++) sum[i]=i*i;
		cin>>q;
		for(int k=1;k<=q;k++)
		{
			cin>>s>>t;
			for(int i=s;i<=t;i++) ans+=sum[i]*(i-s+1);
			cout<<ans<<'\n'; ans=0;
		}
	}
	else
	{
		cin>>q;
		build(1,1,n);
		for(int i=1;i<=q;i++)
		{
			cin>>s>>t;
			for(int j=s;j<=t;j++)
			{
				for(int k=s;k<=t;k++)
				{
					ans+=ask1(1,j,k)*ask2(1,j,k);
//					cout<<ask1(1,j,k)<<' '<<ask2(1,j,k)<<' ';
				}
			}
			cout<<ans<<'\n'; ans=0;
		}
	}
	return 0;
}
