#include <bits/stdc++.h>
using namespace std ;
#define ll long long
const ll MAXn = 500001 , MOD = 1000000007 ;
ll n , q , a[MAXn] ;
vector<ll> u[MAXn] ;
ll f(const ll &x , const ll &y){
ll p = x * y , res = 0 ;
for(auto v : u[__gcd(x , y)]) res = (res + p / (v * v) % MOD) % MOD ;
return res ;
}
int main(){
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
freopen("GCDS.INP" , "r" , stdin) ;
freopen("GCDS.OUT" , "w" , stdout) ;
for(ll i = 1 ; i <= 500000 ; ++i)
for(ll j = i ; j <= 500000 ; j += i)
u[j].push_back(i) ;
cin >> n >> q ;
for(ll i = 1 ; i <= n ; ++i) cin >> a[i] ;
ll res = 0 ;
for(ll i = 1 ; i < n ; ++i)
for(ll j = i + 1 ; j <= n ; ++j)
res += f(a[i] , a[j]) ;
cout << res % MOD << "\n" ;
ll t , w ;
while(q--){
cin >> t >> w ;
for(ll i = 1 ; i <= n ; ++i) if(i != t){
res += f(a[i] , w) - f(a[i] , a[t]) ;
}
a[t] = w ;
cout << res % MOD << "\n" ;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQgOwojZGVmaW5lIGxsIGxvbmcgbG9uZwoKY29uc3QgbGwgTUFYbiA9IDUwMDAwMSAsIE1PRCA9IDEwMDAwMDAwMDcgOwpsbCBuICwgcSAsIGFbTUFYbl0gOwp2ZWN0b3I8bGw+IHVbTUFYbl0gOwoKbGwgZihjb25zdCBsbCAmeCAsIGNvbnN0IGxsICZ5KXsKICAgIGxsIHAgPSB4ICogeSAsIHJlcyA9IDAgOwogICAgZm9yKGF1dG8gdiA6IHVbX19nY2QoeCAsIHkpXSkgcmVzID0gKHJlcyArIHAgLyAodiAqIHYpICUgTU9EKSAlIE1PRCA7CiAgICByZXR1cm4gcmVzIDsKfQoKaW50IG1haW4oKXsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKICAgIGZyZW9wZW4oIkdDRFMuSU5QIiAsICJyIiAsIHN0ZGluKSA7CiAgICBmcmVvcGVuKCJHQ0RTLk9VVCIgLCAidyIgLCBzdGRvdXQpIDsKICAgIAogICAgZm9yKGxsIGkgPSAxIDsgaSA8PSA1MDAwMDAgOyArK2kpCiAgICAgICAgZm9yKGxsIGogPSBpIDsgaiA8PSA1MDAwMDAgOyBqICs9IGkpCiAgICAgICAgICAgIHVbal0ucHVzaF9iYWNrKGkpIDsKCiAgICBjaW4gPj4gbiA+PiBxIDsKICAgIGZvcihsbCBpID0gMSA7IGkgPD0gbiA7ICsraSkgY2luID4+IGFbaV0gOwoKICAgIGxsIHJlcyA9IDAgOwogICAgZm9yKGxsIGkgPSAxIDsgaSA8IG4gOyArK2kpCiAgICAgICAgZm9yKGxsIGogPSBpICsgMSA7IGogPD0gbiA7ICsraikKICAgICAgICAgICAgcmVzICs9IGYoYVtpXSAsIGFbal0pIDsKICAgIGNvdXQgPDwgcmVzICUgTU9EIDw8ICJcbiIgOwoKICAgIGxsIHQgLCB3IDsKICAgIHdoaWxlKHEtLSl7CiAgICAgICAgY2luID4+IHQgPj4gdyA7CiAgICAgICAgZm9yKGxsIGkgPSAxIDsgaSA8PSBuIDsgKytpKSBpZihpICE9IHQpewogICAgICAgICAgICByZXMgKz0gZihhW2ldICwgdykgLSBmKGFbaV0gLCBhW3RdKSA7CiAgICAgICAgfQogICAgICAgIGFbdF0gPSB3IDsKICAgICAgICBjb3V0IDw8IHJlcyAlIE1PRCA8PCAiXG4iIDsKICAgIH0KfQo=