https://ac.nowcoder.com/acm/contest/19483/A
#include<bits/stdc++.h>
using namespace std;
#define mod 1000000007
const int N=1e5+10;
#define int long long
int n,m;
int pre[N],a[N];
int qpow(int a,int b)
{
int ans=1;
while(b)
{
if(b&1) ans=ans*a%mod;
b=b>>1;
a=a*a%mod;
}
return ans;
}
int inv (int a)
{
return qpow(a,mod-2);
}
signed main()
{
pre[0]=1;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i];
pre[i]=pre[i-1]*a[i]%mod;//乘积前缀和
}
int l,r;
while(m--)
{
cin>>l>>r;//类似普通前缀和
//后缀*前缀逆元
int s=pre[r]*inv(pre[l-1])%mod;
cout<<s<<endl;
}
return 0;
}