#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;
    int i = 0;
    while(a > 0 && b > 0)
    {
        if(a%2 && b%2)
            r += pow(2, i);
        i++;
        a /= 2;
        b /= 2;
    }
    return r;
}

int bit(int a, int b, int* N)
{
    if(a == 0)
        return 0;
    if(a == b)
        return N[a-1];
    if(a == b-1)
        return check(N[a-1], N[b-1]);
    return check(bit(a, b-1, 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;
}