#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<queue>
#include<cmath>
using namespace std;
#define ull unsigned long long
#define vull vector<ull >
#define vvull vector<vull >
const int N=303;
int t, q, l, r;
int n, m, k;
vull a, b;
vvull fa, fb, fs;

int main(){
    freopen("meow.in","r",stdin);
    freopen("meow.out","w",stdout);
    scanf("%d%d", &t, &n);
    a.resize(n);
    b.resize(n);
    fa.resize(n);
    for(vvull::iterator it=fa.begin(); it!=fa.end(); it++){
        (*it).resize(n);
    }
    fb.resize(n);
    for(vvull::iterator it=fb.begin(); it!=fb.end(); it++){
        (*it).resize(n);
    }
    fs.resize(n);
    for(vvull::iterator it=fs.begin(); it!=fs.end(); it++){
        (*it).resize(n);
    }
    for(int i=0; i<n; i++){
        scanf("%d", &fa[i][i]);
    }
    for(int i=0; i<n; i++){
        scanf("%d", &fb[i][i]);
        fs[i][i]=fa[i][i]*fb[i][i];
    }
    for(int k=1; k<n; k++){
        for(int i=0; i+k<n; i++){
            fa[i][i+k]=max(fa[i][i+k-1], fa[i+k][i+k]);
            fb[i][i+k]=max(fb[i][i+k-1], fb[i+k][i+k]);
        }
    }
    for(int k=1; k<n; k++){
        for(int i=0; i+k<n; i++){
            fs[i][i+k]=fs[i][i+k-1]+fs[i+k][i+k];
        }
    }
    scanf("%d", &q);
    for(int i=0; i<n; i++){
        scanf("%d%d", &l, &r);
        printf("%lld\n", fs[l][r]);
    }
    return 0;
}