#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int MOD = 1e9+7;
const int N = 2e5+5;
int n, q, a[N];
int spf[N];
ll pw(ll x, ll n) {
ll a = 1; x %= MOD;
for (; n; n >>= 1, x = x * x % MOD)
if (n & 1) a = a * x % MOD;
return a;
}
void precompute() {
iota(spf, spf + N, 0);
for (int i = 2; i * i < N; i++)
if (spf[i] == i)
for (int j = i * i; j < N; j += i)
if (spf[j] == j) spf[j] = i;
}
using T = map<int, int>;
T st[4*N];
void pull(int id) {
st[id].clear();
int lc = id << 1, rc = id << 1 | 1;
if (st[lc].size() > st[rc].size()) swap(lc, rc);
for (auto& it : st[lc]) {
auto it2 = st[rc].find(it.first);
if (it2 != st[rc].end()) {
int e = min(it.second, it2->second);
if (e > 0) st[id][it.first] = e;
}
}
}
void apply(int id, int x) {
while (x > 1) {
int p = spf[x];
while (x % p == 0) {
st[id][p]++;
x /= p;
}
}
}
void build(int id, int l, int r) {
if (l == r) {
apply(id, a[l]);
return;
}
int mid = (l + r) >> 1;
build(id << 1, l, mid);
build(id << 1 | 1, mid + 1, r);
pull(id);
}
void update(int id, int l, int r, int p, int x) {
if (l == r) {
apply(id, x);
return;
}
int mid = (l + r) >> 1;
if (p <= mid) update(id << 1, l, mid, p, x);
else update(id << 1 | 1, mid + 1, r, p, x);
pull(id);
}
void solve() {
cin >> n >> q;
for (int i = 1; i <= n; i++) cin >> a[i];
build(1, 1, n);
while (q--) {
int k, x; cin >> k >> x;
update(1, 1, n, k, x);
ll ans = 1;
for (auto& it : st[1]) ans = ans * pw(it.first, it.second) % MOD;
cout << ans << '\n';
}
}
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL);
#define TASK "GCD"
if (fopen(TASK".INP", "r")) {
freopen(TASK".INP", "r", stdin);
freopen(TASK".OUT", "w", stdout);
}
precompute();
int tests = 1; // cin >> tests;
while (tests--) solve();
#ifdef LOCAL
cerr << "\nTime elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
#endif
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1c2luZyBsbCA9IGxvbmcgbG9uZzsKCmNvbnN0IGludCBNT0QgPSAxZTkrNzsKY29uc3QgaW50IE4gPSAyZTUrNTsKCmludCBuLCBxLCBhW05dOwppbnQgc3BmW05dOwoKbGwgcHcobGwgeCwgbGwgbikgewogICAgbGwgYSA9IDE7IHggJT0gTU9EOwogICAgZm9yICg7IG47IG4gPj49IDEsIHggPSB4ICogeCAlIE1PRCkKICAgICAgICBpZiAobiAmIDEpIGEgPSBhICogeCAlIE1PRDsKICAgIHJldHVybiBhOwp9Cgp2b2lkIHByZWNvbXB1dGUoKSB7CiAgICBpb3RhKHNwZiwgc3BmICsgTiwgMCk7CiAgICBmb3IgKGludCBpID0gMjsgaSAqIGkgPCBOOyBpKyspCiAgICAgICAgaWYgKHNwZltpXSA9PSBpKQogICAgICAgICAgICBmb3IgKGludCBqID0gaSAqIGk7IGogPCBOOyBqICs9IGkpCiAgICAgICAgICAgICAgICBpZiAoc3BmW2pdID09IGopIHNwZltqXSA9IGk7Cn0KCnVzaW5nIFQgPSBtYXA8aW50LCBpbnQ+OwpUIHN0WzQqTl07Cgp2b2lkIHB1bGwoaW50IGlkKSB7CiAgICBzdFtpZF0uY2xlYXIoKTsKICAgIGludCBsYyA9IGlkIDw8IDEsIHJjID0gaWQgPDwgMSB8IDE7CiAgICBpZiAoc3RbbGNdLnNpemUoKSA+IHN0W3JjXS5zaXplKCkpIHN3YXAobGMsIHJjKTsKICAgIGZvciAoYXV0byYgaXQgOiBzdFtsY10pIHsKICAgICAgICBhdXRvIGl0MiA9IHN0W3JjXS5maW5kKGl0LmZpcnN0KTsKICAgICAgICBpZiAoaXQyICE9IHN0W3JjXS5lbmQoKSkgewogICAgICAgICAgICBpbnQgZSA9IG1pbihpdC5zZWNvbmQsIGl0Mi0+c2Vjb25kKTsKICAgICAgICAgICAgaWYgKGUgPiAwKSBzdFtpZF1baXQuZmlyc3RdID0gZTsKICAgICAgICB9CiAgICB9Cn0KCnZvaWQgYXBwbHkoaW50IGlkLCBpbnQgeCkgewogICAgd2hpbGUgKHggPiAxKSB7CiAgICAgICAgaW50IHAgPSBzcGZbeF07CiAgICAgICAgd2hpbGUgKHggJSBwID09IDApIHsKICAgICAgICAgICAgc3RbaWRdW3BdKys7CiAgICAgICAgICAgIHggLz0gcDsKICAgICAgICB9CiAgICB9Cn0KCnZvaWQgYnVpbGQoaW50IGlkLCBpbnQgbCwgaW50IHIpIHsKICAgIGlmIChsID09IHIpIHsKICAgICAgICBhcHBseShpZCwgYVtsXSk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaW50IG1pZCA9IChsICsgcikgPj4gMTsKICAgIGJ1aWxkKGlkIDw8IDEsIGwsIG1pZCk7CiAgICBidWlsZChpZCA8PCAxIHwgMSwgbWlkICsgMSwgcik7CiAgICBwdWxsKGlkKTsKfQoKdm9pZCB1cGRhdGUoaW50IGlkLCBpbnQgbCwgaW50IHIsIGludCBwLCBpbnQgeCkgewogICAgaWYgKGwgPT0gcikgewogICAgICAgIGFwcGx5KGlkLCB4KTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpbnQgbWlkID0gKGwgKyByKSA+PiAxOwogICAgaWYgKHAgPD0gbWlkKSB1cGRhdGUoaWQgPDwgMSwgbCwgbWlkLCBwLCB4KTsKICAgIGVsc2UgdXBkYXRlKGlkIDw8IDEgfCAxLCBtaWQgKyAxLCByLCBwLCB4KTsKICAgIHB1bGwoaWQpOwp9Cgp2b2lkIHNvbHZlKCkgewogICAgY2luID4+IG4gPj4gcTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgY2luID4+IGFbaV07CiAgICBidWlsZCgxLCAxLCBuKTsKICAgIHdoaWxlIChxLS0pIHsKICAgICAgICBpbnQgaywgeDsgY2luID4+IGsgPj4geDsKICAgICAgICB1cGRhdGUoMSwgMSwgbiwgaywgeCk7CiAgICAgICAgbGwgYW5zID0gMTsKICAgICAgICBmb3IgKGF1dG8mIGl0IDogc3RbMV0pIGFucyA9IGFucyAqIHB3KGl0LmZpcnN0LCBpdC5zZWNvbmQpICUgTU9EOwogICAgICAgIGNvdXQgPDwgYW5zIDw8ICdcbic7CiAgICB9Cn0KCmludCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IGNpbi50aWUoTlVMTCk7CgogICAgI2RlZmluZSBUQVNLICJHQ0QiCiAgICBpZiAoZm9wZW4oVEFTSyIuSU5QIiwgInIiKSkgewogICAgICAgIGZyZW9wZW4oVEFTSyIuSU5QIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3BlbihUQVNLIi5PVVQiLCAidyIsIHN0ZG91dCk7CiAgICB9CgogICAgcHJlY29tcHV0ZSgpOwoKICAgIGludCB0ZXN0cyA9IDE7IC8vIGNpbiA+PiB0ZXN0czsKICAgIHdoaWxlICh0ZXN0cy0tKSBzb2x2ZSgpOwoKICAgICNpZmRlZiBMT0NBTAogICAgY2VyciA8PCAiXG5UaW1lIGVsYXBzZWQ6ICIgPDwgMS4wICogY2xvY2soKSAvIENMT0NLU19QRVJfU0VDIDw8ICIgcy5cbiI7CiAgICAjZW5kaWYKICAgIHJldHVybiAwOwp9