#include<bits/stdc++.h>
using namespace std;
int t;
int n;
int a[250001],b[250001],q,l,r;
long long ans=0;
int findmaxa(int x,int y)
{
	int max=a[x];
	for(int i=x;i<=y;i++)
	{
		if(a[i]>max)
			max=a[i];
	}
	return max;
}
int findmaxb(int x,int y)
{
	int max=b[x];
	for(int i=x;i<=y;i++)
	{
		if(b[i]>max)
			max=b[i];
	}
	return max;
}
long long qumo(long long a)
{
	int cnt[64];
	for(int i=63;i>=0;i--)
	{
		cnt[i]=a%2;
		a=a/2;
	}
	long long m=0;
	for(int i=0;i<=63;i++)
	{
		m=m*2+cnt[i];
	}
	return m;
}
long long find(int x,int y)
{
	return findmaxa(x,y)*findmaxb(x,y);
}
int main()
{
	freopen("match.in","r",stdin);
	freopen("match.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>t;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	for(int i=1;i<=n;i++)
	{
		cin>>b[i];
	}
	cin>>q;
	for(int o=1;o<=q;o++)
	{
		ans=0;
		cin>>l>>r;
		for(int i=l;i<=r;i++)
			for(int j=i;j<=r;j++)
				ans=qumo((ans+find(i,j)));
		cout<<ans;
	}
	return 0;
}