#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define FOR(i, l, r) for(int i = l; i <= r; i++)
#define FORD(i, l, r) for(int i = l; i >= r; i--)
#define db double
#define ldb long double
#define all_1(x) (x).begin() + 1, (x).end()
#define all(x) (x).begin(), (x).end()
#define ins insert
#define pb push_back
template<typename T>void debug_var(const T& var, const string& name){
cerr << name << ": " << var << "\n";
}
template<typename T>void debug_1d(const T& vt, const string& name){
if(vt.empty()){
cerr << name << " is empty!\n";
return;
}
FOR(i, 0, (int)vt.size() - 1){
cerr << name << "[" << i << "]: " << vt[i] << "\n";
}
}
void sinh_test(){
freopen("sinh_test.inp", "r", stdin);
freopen("baodat.out", "w", stdout);
}
template<typename T> struct BIT{
int _n;
vector<T> _bit;
BIT(int n = 0){
init(n);
}
void init(int n){
_n = n;
_bit.assign(n + 1, 0);
}
void update(int i, T v){
while(i <= _n){
_bit[i] += v;
i += i &-i;
}
}
T query(int i){
T ans = 0;
while(i > 0){
ans += _bit[i];
i -= i &-i;
}
return ans;
}
void update(int l, int r, T v){
update(l, v);
if(r + 1 <= _n) update(r + 1, -v);
}
};
const int N = 4e5 + 5;
int n, m, k;
vector<int> pos[N];
ll need[N];
int L[N], R[N], A[N], pbs_L[N], pbs_R[N];
void solve(){
cin >> n >> m;
FOR(i, 1, m){
int x;
cin >> x;
pos[x].pb(i);
}
//debug_var(n, "n");
vector<int>ans(n + 1, -1);
FOR(i, 1, n) cin >> need[i];
cin >> k;
FOR(i, 1, k) cin >> L[i] >> R[i] >> A[i];
FOR(i, 1, n){
pbs_L[i] = 1;
pbs_R[i] = k;
}
while(true){
vector<vector<int>> ds(k + 1);
bool changed = false;
FOR(i, 1, n){
if(pbs_L[i] <= pbs_R[i]){
changed = true;
ds[(pbs_L[i] + pbs_R[i]) >> 1].pb(i);
}
}
if(!changed) break;
BIT<ll> bit(m);
FOR(i, 1, k){
if(L[i] > R[i]){
bit.update(L[i], m, A[i]);
bit.update(1, R[i], A[i]);
}
else{
bit.update(L[i], R[i], A[i]);
}
for(int mid : ds[i]){
ll sum = 0;
for(int j : pos[mid]){
sum += bit.query(j);
}
if(sum >= need[mid]){
ans[mid] = i;
pbs_R[mid] = i - 1;
}
else pbs_L[mid] = i + 1;
}
}
}
FOR(i, 1, n){
if(ans[i] == -1) cout << "NIE\n";
else cout << ans[i] << "\n";
}
}
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
//sinh_test();
int t = 1;
//cin >> t;
while(t--){
solve();
}
return 0;
}