#include <iostream>
using namespace std;

long long p=1000000007;
long long re(long long a,long long b,long long c){

long long d=1;
a=a%c;
while(b){
    if(b&1)
d=(a%c*(d%c))%c;
a=(a%c*(a%c))%c;
b>>=1;



}

return d%c;



}
long long a[100007];
int main(){
int n,q;
cin>>n>>q;
a[0]=1;
for(int i=1;i<=n;i++){
int b;
cin>>b;
a[i]=(a[i-1]*(b%p))%p;




}
while(q--){
int l,r;
cin>>l>>r;
long long t=re(a[l-1],p-2,p);
cout<<t*a[r]%p<<' ';




}



    return 0;
}