#include <bits/stdc++.h>

using namespace std;

int power(int x)
{
    int r = 1;
    for(int i = 0; i < x; i++)
        r *= 2;
    return r;
}

int check(int a, int b)
{
    int r = 0;
    for(int i = 0; i <= log(max(a, b))+1; i++)
        if((a%power(i+1))/pow(2, i) && (b%power(i+1))/pow(2, i))
            r += pow(2, i);
    return r;
}

int bit(int a, int b, int* N)
{
    if(a == b)
        return N[a-1];
    if(a == b-1)
        return check(N[a-1], N[b-1]);
    return check(bit(a-1, b-2, N), N[b-1]);
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);

    int n, Q;
    cin >> n >> Q;
    int a, b;

    int N[n];
    int R[Q];
    for(int i = 0; i < n; i++)
        cin >> N[i];

    for(int i = 0; i < Q; i++)
    {
        cin >> a >> b;
        R[i] = bit(a, b, N);
    }

    for(int i = 0; i < Q; i++)
        cout << R[i] << endl;

    return 0;
}