#include <bits/stdc++.h>

using namespace std;

int main()
{
    long long int n, q, a, b, broj, i, j=0, k, maksimum=1;

    cin>>n>>q;

    long long int niz[n], nule[n];

    for(i=0; i<n; i++)
    {
        cin>>niz[i];
        if(niz[i]>1)
        {
            maksimum=2;
        }
        else
        {
            if(niz[i]==0)
            {
                nule[j]=i;
                j++;
            }
        }
    }

    for(i=0; i<q; i++)
    {
        cin>>a>>b;

        if(maksimum==2)
        {
            broj=niz[a-1];

            for(k=a; k<b; k++)
            {
                broj=broj&niz[k];
                if(broj==0)
                {
                    break;
                }
            }

            cout<<broj<<endl;
        }
        else
        {
            for(i=a-1; i<b; i++)
            {
                if(binary_search(nule, nule+j, i))
                {
                    cout<<0<<endl;
                    j=-1;
                    break;
                }
            }
            if(j!=-1)
            {
                cout<<1<<endl;
            }
        }


    }
    return 0;
}