#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace std;
template<typename T>
using ordered_multiset = tree<
pair<T,int>, null_type,
less<pair<T,int>>,
rb_tree_tag,
tree_order_statistics_node_update>;
const int k = (1 << 19);
int uid = 1;
ordered_multiset<int> drzewo[k*2+10];
void upd(int x,int a)
{
int c = (*drzewo[x].find_by_order(0)).first;
drzewo[x].erase(drzewo[x].lower_bound({c,-1}));
drzewo[x].insert({a,uid});
uid++;
x /= 2;
while(x >= 1)
{
drzewo[x].erase(drzewo[x].lower_bound({c,-1}));
drzewo[x].insert({a,uid});
uid++;
x /= 2;
}
}
int odp(int l,int p,int L,int P,int x,int a)
{
if(l > P || p < L)
{
return 0;
}
if(L <= l && p <= P)
{
return drzewo[x].order_of_key({a,-1});
}
return odp(l,(l+p)/2,L,P,x*2,a)+odp((l+p+1)/2,p,L,P,x*2+1,a);
}
int main()
{
/*int n,a,b;
cin >> n;
for(int i = 0;i < n;++i)
{
cin >> a;
if(a == 0)
{
cin >> a;
os.insert({a,uid});
uid++;
}
else if(a == 1)
{
cin >> a;
os.erase(os.lower_bound({a,-1}));
uid++;
}
else
{
cin >> a;
cout << os.order_of_key({a,-1}) << endl;
}
}*/
int n,m,u,a,b,c,d,f;
cin >> n >> m >> u;
for(int i = 0;i < n;++i)
{
cin >> a;
drzewo[i+k].insert({a,uid});
uid++;
}
for(int i = n;i < k;++i)
{
drzewo[i+k].insert({1e9,uid});
uid++;
}
for(int i = k-1;i >= 1;--i)
{
//cout << drzewo[i].size() << endl;
for (auto j : drzewo[i*2])
drzewo[i].insert(j);
for (auto j : drzewo[i*2+1])
drzewo[i].insert(j);
//cout << drzewo[i].size() << ' ' << i << endl;
}
for(int i = 0;i < m;++i)
{
cin >> a >> b >> c >> d;
f = odp(0,k-1,a-1,b-1,1,c);
upd(k+d-1,(f*u)/(b-a+1));
//cout << f << endl;
}
for(int i = 0;i < n;++i)
{
cout << (*drzewo[k+i].find_by_order(0)).first << endl;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxleHQvcGJfZHMvYXNzb2NfY29udGFpbmVyLmhwcD4KI2luY2x1ZGUgPGV4dC9wYl9kcy90cmVlX3BvbGljeS5ocHA+CnVzaW5nIG5hbWVzcGFjZSBfX2dudV9wYmRzOwp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGU8dHlwZW5hbWUgVD4KdXNpbmcgb3JkZXJlZF9tdWx0aXNldCA9IHRyZWU8CiAgICBwYWlyPFQsaW50PiwgbnVsbF90eXBlLAogICAgbGVzczxwYWlyPFQsaW50Pj4sCiAgICByYl90cmVlX3RhZywKICAgIHRyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZT47Cgpjb25zdCBpbnQgayA9ICgxIDw8IDE5KTsKaW50IHVpZCA9IDE7CgpvcmRlcmVkX211bHRpc2V0PGludD4gZHJ6ZXdvW2sqMisxMF07Cgp2b2lkIHVwZChpbnQgeCxpbnQgYSkKewoJaW50IGMgPSAoKmRyemV3b1t4XS5maW5kX2J5X29yZGVyKDApKS5maXJzdDsKCWRyemV3b1t4XS5lcmFzZShkcnpld29beF0ubG93ZXJfYm91bmQoe2MsLTF9KSk7Cglkcnpld29beF0uaW5zZXJ0KHthLHVpZH0pOwoJdWlkKys7Cgl4IC89IDI7Cgl3aGlsZSh4ID49IDEpCgl7CgkJZHJ6ZXdvW3hdLmVyYXNlKGRyemV3b1t4XS5sb3dlcl9ib3VuZCh7YywtMX0pKTsKCQlkcnpld29beF0uaW5zZXJ0KHthLHVpZH0pOwoJCXVpZCsrOwoJCXggLz0gMjsKCX0KfQoKaW50IG9kcChpbnQgbCxpbnQgcCxpbnQgTCxpbnQgUCxpbnQgeCxpbnQgYSkKewoJaWYobCA+IFAgfHwgcCA8IEwpCgl7CgkJcmV0dXJuIDA7Cgl9CglpZihMIDw9IGwgJiYgcCA8PSBQKQoJewoJCXJldHVybiBkcnpld29beF0ub3JkZXJfb2Zfa2V5KHthLC0xfSk7Cgl9CglyZXR1cm4gb2RwKGwsKGwrcCkvMixMLFAseCoyLGEpK29kcCgobCtwKzEpLzIscCxMLFAseCoyKzEsYSk7Cn0KCmludCBtYWluKCkKewoJLyppbnQgbixhLGI7CgljaW4gPj4gbjsKCWZvcihpbnQgaSA9IDA7aSA8IG47KytpKQoJewoJCWNpbiA+PiBhOwoJCWlmKGEgPT0gMCkKCQl7CgkJCWNpbiA+PiBhOwoJCQlvcy5pbnNlcnQoe2EsdWlkfSk7CgkJCXVpZCsrOwoJCX0KCQllbHNlIGlmKGEgPT0gMSkKCQl7CgkJCWNpbiA+PiBhOwoJCQlvcy5lcmFzZShvcy5sb3dlcl9ib3VuZCh7YSwtMX0pKTsKCQkJdWlkKys7CgkJfQoJCWVsc2UKCQl7CgkJCWNpbiA+PiBhOwoJCQljb3V0IDw8IG9zLm9yZGVyX29mX2tleSh7YSwtMX0pIDw8IGVuZGw7CgkJfQoJfSovCglpbnQgbixtLHUsYSxiLGMsZCxmOwoJY2luID4+IG4gPj4gbSA+PiB1OwoJZm9yKGludCBpID0gMDtpIDwgbjsrK2kpCgl7CgkJY2luID4+IGE7CgkJZHJ6ZXdvW2kra10uaW5zZXJ0KHthLHVpZH0pOwoJCXVpZCsrOwoJfQoJZm9yKGludCBpID0gbjtpIDwgazsrK2kpCgl7CgkJZHJ6ZXdvW2kra10uaW5zZXJ0KHsxZTksdWlkfSk7CgkJdWlkKys7Cgl9Cglmb3IoaW50IGkgPSBrLTE7aSA+PSAxOy0taSkKCXsKCQkvL2NvdXQgPDwgZHJ6ZXdvW2ldLnNpemUoKSA8PCBlbmRsOwoJCWZvciAoYXV0byBqIDogZHJ6ZXdvW2kqMl0pCgkJCWRyemV3b1tpXS5pbnNlcnQoaik7CgkJZm9yIChhdXRvIGogOiBkcnpld29baSoyKzFdKQoJCQlkcnpld29baV0uaW5zZXJ0KGopOwoJCS8vY291dCA8PCBkcnpld29baV0uc2l6ZSgpIDw8ICcgJyA8PCBpIDw8IGVuZGw7Cgl9Cglmb3IoaW50IGkgPSAwO2kgPCBtOysraSkKCXsKCQljaW4gPj4gYSA+PiBiID4+IGMgPj4gZDsKCQlmID0gb2RwKDAsay0xLGEtMSxiLTEsMSxjKTsKCQl1cGQoaytkLTEsKGYqdSkvKGItYSsxKSk7CgkJLy9jb3V0IDw8IGYgPDwgZW5kbDsKCX0KCWZvcihpbnQgaSA9IDA7aSA8IG47KytpKQoJewoJCWNvdXQgPDwgKCpkcnpld29baytpXS5maW5kX2J5X29yZGVyKDApKS5maXJzdCA8PCBlbmRsOwoJfQp9CgoKCg==