#include <bits/stdc++.h>
using namespace std;
#define lowbit(x) (x & -x)
long long n, m, k;
vector <long long> o[300010];
long long p[300010], l[300010], r[300010], a[300010], ans[300010];
struct BIT
{
long long node[300010];
void upd(long long pos,long long k) {
for(long long i = pos;i <= 300005;i += lowbit(i)) node[i] += k;
}
long long qry(long long pos) {
long long res = 0;
for(long long i = pos;i > 0;i -= lowbit(i)) res += node[i];
return res;
}
} wlx;
void arr_add_sec(long long l1, long long r1, long long add_num)
{
wlx.upd(l1, add_num);
wlx.upd(r1 + 1, -add_num);
}
void ring_add_sec(long long l1, long long r1, long long add_num)
{
if (l1 > r1){arr_add_sec(l1, m, add_num); arr_add_sec(1, r1, add_num);}
else arr_add_sec(l1, r1, add_num);
}
void work(long long l1, long long r1, vector <long long> now)
{
if (l1 == r1) {for (auto x : now) ans[x] = l1;return;}
long long mid = (l1 + r1) / 2;
for (long long i = l1; i <= mid; i++)
ring_add_sec(l[i], r[i], a[i]);
vector <long long> left, right;
for (auto x : now)
{
long long sum = 0;
for (auto y : o[x])
sum += wlx.qry(y);
if (sum < p[x]) {p[x] -= sum; right.push_back(x);}
else left.push_back(x);
}
for (long long i = l1; i <= mid; i++)
ring_add_sec(l[i], r[i], -a[i]);
work(l1, mid, left);
work(mid + 1, r1, right);
}
int main()
{
cin >> n >> m;
for (long long i = 1; i <= m; i++)
{
long long o1;
cin >> o1;
o[o1].push_back(i);
}
for (long long i = 1; i <= n; i++) cin >> p[i];
cin >> k;
for (long long i = 1; i <= k; i++) cin >> l[i] >> r[i] >> a[i];
vector <long long> all;
for (long long i = 1; i <= n; i++) all.push_back(i);
work(1, k + 1, all);
for (long long i = 1; i <= n; i++)
{
if (ans[i] == k + 1) {puts("NIE"); continue;}
cout << ans[i] << endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbG93Yml0KHgpICh4ICYgLXgpCmxvbmcgbG9uZyBuLCBtLCBrOwp2ZWN0b3IgPGxvbmcgbG9uZz4gb1szMDAwMTBdOwpsb25nIGxvbmcgcFszMDAwMTBdLCBsWzMwMDAxMF0sIHJbMzAwMDEwXSwgYVszMDAwMTBdLCBhbnNbMzAwMDEwXTsKc3RydWN0IEJJVAp7Cglsb25nIGxvbmcgbm9kZVszMDAwMTBdOwoJdm9pZCB1cGQobG9uZyBsb25nIHBvcyxsb25nIGxvbmcgaykgewoJCWZvcihsb25nIGxvbmcgaSA9IHBvcztpIDw9IDMwMDAwNTtpICs9IGxvd2JpdChpKSkgbm9kZVtpXSArPSBrOwoJfQoJbG9uZyBsb25nIHFyeShsb25nIGxvbmcgcG9zKSB7CgkJbG9uZyBsb25nIHJlcyA9IDA7CgkJZm9yKGxvbmcgbG9uZyBpID0gcG9zO2kgPiAwO2kgLT0gbG93Yml0KGkpKSByZXMgKz0gbm9kZVtpXTsKCQlyZXR1cm4gcmVzOwoJfQp9IHdseDsKdm9pZCBhcnJfYWRkX3NlYyhsb25nIGxvbmcgbDEsIGxvbmcgbG9uZyByMSwgbG9uZyBsb25nIGFkZF9udW0pCnsKCXdseC51cGQobDEsIGFkZF9udW0pOwoJd2x4LnVwZChyMSArIDEsIC1hZGRfbnVtKTsKfQp2b2lkIHJpbmdfYWRkX3NlYyhsb25nIGxvbmcgbDEsIGxvbmcgbG9uZyByMSwgbG9uZyBsb25nIGFkZF9udW0pCnsKCWlmIChsMSA+IHIxKXthcnJfYWRkX3NlYyhsMSwgbSwgYWRkX251bSk7IGFycl9hZGRfc2VjKDEsIHIxLCBhZGRfbnVtKTt9CgllbHNlIGFycl9hZGRfc2VjKGwxLCByMSwgYWRkX251bSk7Cn0Kdm9pZCB3b3JrKGxvbmcgbG9uZyBsMSwgbG9uZyBsb25nIHIxLCB2ZWN0b3IgPGxvbmcgbG9uZz4gbm93KQp7CglpZiAobDEgPT0gcjEpIHtmb3IgKGF1dG8geCA6IG5vdykgYW5zW3hdID0gbDE7cmV0dXJuO30KCWxvbmcgbG9uZyBtaWQgPSAobDEgKyByMSkgLyAyOwoJZm9yIChsb25nIGxvbmcgaSA9IGwxOyBpIDw9IG1pZDsgaSsrKQoJCXJpbmdfYWRkX3NlYyhsW2ldLCByW2ldLCBhW2ldKTsKCXZlY3RvciA8bG9uZyBsb25nPiBsZWZ0LCByaWdodDsKCWZvciAoYXV0byB4IDogbm93KQoJewoJCWxvbmcgbG9uZyBzdW0gPSAwOwoJCWZvciAoYXV0byB5IDogb1t4XSkKCQkJc3VtICs9IHdseC5xcnkoeSk7CgkJaWYgKHN1bSA8IHBbeF0pIHtwW3hdIC09IHN1bTsgcmlnaHQucHVzaF9iYWNrKHgpO30KCQllbHNlIGxlZnQucHVzaF9iYWNrKHgpOwoJfQoJZm9yIChsb25nIGxvbmcgaSA9IGwxOyBpIDw9IG1pZDsgaSsrKQoJCXJpbmdfYWRkX3NlYyhsW2ldLCByW2ldLCAtYVtpXSk7Cgl3b3JrKGwxLCBtaWQsIGxlZnQpOwoJd29yayhtaWQgKyAxLCByMSwgcmlnaHQpOwp9CmludCBtYWluKCkKewoJY2luID4+IG4gPj4gbTsKCWZvciAobG9uZyBsb25nIGkgPSAxOyBpIDw9IG07IGkrKykKCXsKCQlsb25nIGxvbmcgbzE7CgkJY2luID4+IG8xOwoJCW9bbzFdLnB1c2hfYmFjayhpKTsKCX0KCWZvciAobG9uZyBsb25nIGkgPSAxOyBpIDw9IG47IGkrKykgY2luID4+IHBbaV07CgljaW4gPj4gazsKCWZvciAobG9uZyBsb25nIGkgPSAxOyBpIDw9IGs7IGkrKykgY2luID4+IGxbaV0gPj4gcltpXSA+PiBhW2ldOwoJdmVjdG9yIDxsb25nIGxvbmc+IGFsbDsKCWZvciAobG9uZyBsb25nIGkgPSAxOyBpIDw9IG47IGkrKykgYWxsLnB1c2hfYmFjayhpKTsKCXdvcmsoMSwgayArIDEsIGFsbCk7Cglmb3IgKGxvbmcgbG9uZyBpID0gMTsgaSA8PSBuOyBpKyspCgl7CgkJaWYgKGFuc1tpXSA9PSBrICsgMSkge3B1dHMoIk5JRSIpOyBjb250aW51ZTt9CgkJY291dCA8PCBhbnNbaV0gPDwgZW5kbDsKCX0KCXJldHVybiAwOwp9