// ROOT : DRAGON3012009
#include <bits/stdc++.h>
#define ll long long
#define ld long double
#define el "\n"
#define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define __ROOT__ int main()
#pragma GCC optimize("O2")
//#pragma GCC optimize("unroll-loops")
//#pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt")
#define FOR(i,l,r) for(int i = l ; i <= r ; i ++)
#define FORD(i,r,l) for(int i = r ; i >= l ; i --)
#define REP(i, a ) for(int i = 0 ; i < a ; i ++ )
#define fi first
#define se second
#define M 1000000007
#define MAXN 200001
#define INF (1ll<<30)
#define BLOCK_SIZE 425
#define MAX_NODE 1001001
#define LOG 19
#define ALPHA_SIZE 26
#define BASE 256
#define NAME "file"
#define compare(v) sort((v).begin(), (v).end()); (v).erase(unique((v).begin(), (v).end()), (v).end());
using namespace std;
using namespace chrono ;
const ll MOD[] = {(ll)1e9 + 2277, (ll)1e9 + 5277, (ll)1e9 + 8277, (ll)1e9 + 9277, (ll) 1e9 + 7 };
const ll NMOD = 1;
const int dx[] = {-1, 0, 1,0};
const int dy[] = {0, 1, 0, -1};
//**Variable**//
ll n, q ;
ll arr[MAXN];
//**Struct**//
struct Seg {
ll val[MAXN << 2 ] ;
void update(ll id, ll l, ll r, ll pos, ll value ) {
if(l == r ) val[id] = value ;
else {
ll m = l + r >> 1 ;
if(m >= pos ) update(id << 1, l, m, pos,value) ;
else update(id << 1|1, m + 1, r, pos, value) ;
val[id] = max(val[id << 1], val[id << 1 | 1 ]) ;
}
}
ll find_pos(ll id, ll l, ll r, ll u, ll v, ll value ) {
if(val[id] < value || u > r || v < l ) return -1 ;
if(l == r ) return l ;
ll ans = -1 ;
ll m = l + r >> 1;
if(val[id << 1 ] >= value ) ans = find_pos(id << 1, l, m, u, v, value) ;
if(ans != -1 ) return ans ;
if(val[id << 1 | 1 ] >= value ) ans = find_pos(id << 1 | 1, m + 1, r, u, v, value ) ;
return ans;
}
} seg;
//**Function**//
template<class X, class Y >
bool minimize(X & x, const Y &y ) {
return x > y ? x = y, 1:0 ;
}
template<class X, class Y >
bool maximize(X &x, const Y &y ) {
return x < y ? x = y, 1:0 ;
}
void init() {
cin>>n >> q ;
FOR(i,1, n) cin >> arr[i] ;
FOR(i, 1, n ) seg.update(1, 1, n, i, arr[i]) ;
}
void solve() {
FOR(i, 1, q ) {
ll l, r, x ;
cin >> l >> r >> x ;
ll cur = l ;
while(cur <= r ) {
ll p = seg.find_pos(1, 1, n, cur, r, x) ;
if(p == - 1 ) break ;
arr[p] %= x ;
seg.update(1, 1, n, p, arr[p]) ;
cur = p + 1 ;
// cout << p << " " ;
}
// cout << " run " << el ;
}
FOR(i, 1, n )cout << arr[i] << " " ;
}
__ROOT__ {
// freopen(NAME".inp" , "r" , stdin);
// freopen(NAME".out" , "w", stdout) ;
fast;
int t = 1; // cin >> t ;
while(t--) {
init();
solve();
}
return (0&0);
}
Ly8gUk9PVCA6IERSQUdPTjMwMTIwMDkKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBlbCAiXG4iCiNkZWZpbmUgZmFzdCBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKI2RlZmluZSBfX1JPT1RfXyBpbnQgbWFpbigpCiNwcmFnbWEgR0NDIG9wdGltaXplKCJPMiIpCi8vI3ByYWdtYSBHQ0Mgb3B0aW1pemUoInVucm9sbC1sb29wcyIpCi8vI3ByYWdtYSBHQ0MgdGFyZ2V0KCJhdngyLGJtaSxibWkyLHBvcGNudCxsemNudCIpCiNkZWZpbmUgRk9SKGksbCxyKSBmb3IoaW50IGkgPSBsIDsgaSA8PSByIDsgaSArKykKI2RlZmluZSBGT1JEKGkscixsKSBmb3IoaW50IGkgPSByIDsgaSA+PSBsIDsgaSAtLSkKI2RlZmluZSBSRVAoaSwgYSApIGZvcihpbnQgaSA9IDAgOyBpIDwgYSA7IGkgKysgKQojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgTSAxMDAwMDAwMDA3CiNkZWZpbmUgTUFYTiAyMDAwMDEKI2RlZmluZSBJTkYgKDFsbDw8MzApCiNkZWZpbmUgQkxPQ0tfU0laRSA0MjUKI2RlZmluZSBNQVhfTk9ERSAxMDAxMDAxCiNkZWZpbmUgTE9HIDE5CiNkZWZpbmUgQUxQSEFfU0laRSAyNgojZGVmaW5lIEJBU0UgMjU2CiNkZWZpbmUgTkFNRSAiZmlsZSIKI2RlZmluZSBjb21wYXJlKHYpIHNvcnQoKHYpLmJlZ2luKCksICh2KS5lbmQoKSk7ICh2KS5lcmFzZSh1bmlxdWUoKHYpLmJlZ2luKCksICh2KS5lbmQoKSksICh2KS5lbmQoKSk7CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIG5hbWVzcGFjZSBjaHJvbm8gOwpjb25zdCBsbCBNT0RbXSA9IHsobGwpMWU5ICsgMjI3NywgKGxsKTFlOSArIDUyNzcsIChsbCkxZTkgKyA4Mjc3LCAobGwpMWU5ICsgOTI3NywgKGxsKSAxZTkgKyA3IH07CmNvbnN0IGxsIE5NT0QgPSAxOwpjb25zdCBpbnQgZHhbXSA9IHstMSwgMCwgMSwwfTsKY29uc3QgaW50IGR5W10gPSB7MCwgMSwgMCwgLTF9OwovLyoqVmFyaWFibGUqKi8vCmxsIG4sIHEgIDsKbGwgYXJyW01BWE5dOwovLyoqU3RydWN0KiovLwpzdHJ1Y3QgU2VnIHsKICAgIGxsIHZhbFtNQVhOIDw8IDIgXSA7CiAgICB2b2lkIHVwZGF0ZShsbCBpZCwgbGwgbCwgbGwgciwgbGwgcG9zLCBsbCB2YWx1ZSAgKSB7CiAgICAgICAgaWYobCA9PSByICkgdmFsW2lkXSA9IHZhbHVlIDsKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbGwgbSA9IGwgKyByID4+IDEgOwogICAgICAgICAgICBpZihtID49IHBvcyApIHVwZGF0ZShpZCA8PCAxLCBsLCBtLCBwb3MsdmFsdWUpIDsKICAgICAgICAgICAgZWxzZSB1cGRhdGUoaWQgPDwgMXwxLCBtICsgMSwgciwgcG9zLCB2YWx1ZSkgOwogICAgICAgICAgICB2YWxbaWRdID0gbWF4KHZhbFtpZCA8PCAxXSwgdmFsW2lkIDw8IDEgfCAxIF0pIDsKICAgICAgICB9CiAgICB9CiAgICBsbCBmaW5kX3BvcyhsbCBpZCwgbGwgbCwgbGwgciwgbGwgdSwgbGwgdiwgbGwgdmFsdWUgKSB7CiAgICAgICAgaWYodmFsW2lkXSA8IHZhbHVlIHx8IHUgPiByIHx8IHYgPCBsICkgcmV0dXJuIC0xIDsKICAgICAgICBpZihsID09IHIgKSByZXR1cm4gbCA7CiAgICAgICAgbGwgYW5zID0gLTEgOwogICAgICAgIGxsIG0gPSBsICsgciA+PiAxOwogICAgICAgIGlmKHZhbFtpZCA8PCAxIF0gPj0gdmFsdWUgKSBhbnMgPSBmaW5kX3BvcyhpZCA8PCAxLCBsLCBtLCB1LCB2LCB2YWx1ZSkgOwogICAgICAgIGlmKGFucyAhPSAtMSApIHJldHVybiBhbnMgOwogICAgICAgIGlmKHZhbFtpZCA8PCAxIHwgMSBdID49IHZhbHVlICkgYW5zID0gZmluZF9wb3MoaWQgPDwgMSB8IDEsIG0gKyAxLCByLCB1LCB2LCB2YWx1ZSApIDsKICAgICAgICByZXR1cm4gYW5zOwogICAgfQp9IHNlZzsKLy8qKkZ1bmN0aW9uKiovLwp0ZW1wbGF0ZTxjbGFzcyBYLCBjbGFzcyBZID4KYm9vbCBtaW5pbWl6ZShYICYgeCwgY29uc3QgWSAmeSApIHsKICAgIHJldHVybiB4ID4geSA/IHggPSB5LCAxOjAgOwp9CnRlbXBsYXRlPGNsYXNzIFgsIGNsYXNzIFkgPgpib29sIG1heGltaXplKFggJngsIGNvbnN0IFkgJnkgKSB7CiAgICByZXR1cm4geCA8IHkgPyB4ID0geSwgMTowIDsKfQoKdm9pZCBpbml0KCkgewogICAgY2luPj5uID4+IHEgOwogICAgRk9SKGksMSwgbikgY2luID4+IGFycltpXSA7CiAgICBGT1IoaSwgMSwgbiAgKSBzZWcudXBkYXRlKDEsIDEsIG4sIGksIGFycltpXSkgOwp9Cgp2b2lkIHNvbHZlKCkgewogICAgRk9SKGksIDEsICBxICkgewogICAgICAgIGxsIGwsIHIsIHggOwogICAgICAgIGNpbiA+PiBsID4+IHIgPj4geCA7CiAgICAgICAgbGwgY3VyID0gbCAgOwogICAgICAgIHdoaWxlKGN1ciA8PSByICkgewogICAgICAgICAgICBsbCBwID0gc2VnLmZpbmRfcG9zKDEsIDEsIG4sIGN1ciwgciwgeCkgOwogICAgICAgICAgICBpZihwID09IC0gMSApIGJyZWFrIDsKICAgICAgICAgICAgYXJyW3BdICU9IHggOwogICAgICAgICAgICBzZWcudXBkYXRlKDEsIDEsIG4sIHAsIGFycltwXSkgOwogICAgICAgICAgICBjdXIgPSBwICsgMSA7Ci8vICAgICAgICAgICAgY291dCA8PCBwIDw8ICIgIiA7CiAgICAgICAgfQovLyAgICAgICAgY291dCA8PCAiIHJ1biAiIDw8IGVsIDsKICAgIH0KICAgIEZPUihpLCAxLCBuICApY291dCA8PCBhcnJbaV0gPDwgIiAiIDsKfQoKX19ST09UX18gewogICAgLy8gZnJlb3BlbihOQU1FIi5pbnAiICwgInIiICwgc3RkaW4pOwogICAgLy8gZnJlb3BlbihOQU1FIi5vdXQiICwgInciLCBzdGRvdXQpIDsKICAgIGZhc3Q7CiAgICBpbnQgdCA9IDE7IC8vIGNpbiA+PiB0IDsKICAgIHdoaWxlKHQtLSkgewogICAgICAgIGluaXQoKTsKICAgICAgICBzb2x2ZSgpOwogICAgfQogICAgcmV0dXJuICgwJjApOwp9CgoKCg==