//就是一个前缀乘+逆元就OK了!!!
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int mod = 1e9 + 7;
const int N = 1e5 + 9;
int a[N];
int fpow(int a, int b)
{
a %= mod;
int res = 1;
while (b)
{
if (b & 1)
res = res * a % mod;
a = a * a % mod;
b >>= 1;
}
return res;
}
int ni(int a)
{
return fpow(a, mod - 2) % mod;
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
int n, q;
cin >> n >> q;
a[0] = 1;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
a[i] = a[i] * a[i - 1] % mod;
}
while (q--)
{
int l, r;
cin >> l >> r;
cout << a[r] * ni(a[l - 1]) % mod << ' ';
}
return 0;
}