#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m;
int a[300005],b[300005];
int t;
struct node{
int id,w;
};
vector<node>g[300005];
int ans[300005];
void solve(int l,int r,vector<int> q){
if(l==r){
for(int i=0;i<q.size();i++){
ans[q[i]]=l;
}
return ;
}
int cnt[300005]={0},mid=(l+r)/2,book=0;
for(int i=1;i<=m;i++){
for(int j=0;j<g[i].size();j++){
if(g[i][j].id<-mid){
book+=g[i][j].w;
}
}
cnt[a[i]]+=book;
}
vector<int>ql,qr;
for(int i=0;i<q.size();i++){
if(cnt[q[i]]>=b[q[i]]){
ql.push_back(q[i]);
}else{
qr.push_back(q[i]);
}
}
solve(l,mid,ql);solve(mid+1,r,qr);
}
signed main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++)cin>>b[i];
cin>>t;
node book;
for(int ql,qr,c,i=1;i<=t;i++){
cin>>ql>>qr>>c;
if(ql>qr){
book.w=c;book.id=i;
g[ql].push_back(book);
g[1].push_back(book);
book.w=-c;
g[qr+1].push_back(book);
}else{
book.w=c;book.id=i;
g[ql].push_back(book);
book.w=-c;
g[qr+1].push_back(book);
}
}
vector<int>q;
for(int i=1;i<=n;i++)q.push_back(i);
solve(1,t+1,q);
for(int i=1;i<=n;i++){
if(ans[i]==t+1)puts("NIE");
else cout<<ans[i]<<endl;
}
return 0;
}