#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,m,q,st[1200006],lz[1200006];
void UPDATE(int id, int l, int r, int u, int v, int vl)
{
    if (l>v || r<u) return;
    else if (l>=u && r<=v)
    {
        st[id]+=vl,lz[id]+=vl;
        return;
    }
    int mid=(l+r)/2;
    lz[id*2]+=lz[id],st[id*2]+=lz[id],lz[id*2+1]+=lz[id],st[id*2+1]+=lz[id];
    UPDATE(id*2,l,mid,u,v,vl),UPDATE(id*2+1,mid+1,r,u,v,vl);
    st[id]=min(st[id*2],st[id*2+1]),lz[id]=0;
}
int GET(int id, int l, int r, int u, int v)
{
    if (l>v || r<u) return 1e18;
    else if (l>=u && r<=v) return st[id];
    int mid=(l+r)/2,vl=lz[id];
    lz[id*2]+=vl,st[id*2]+=vl,lz[id*2+1]+=vl,st[id*2+1]+=vl,lz[id]=0;
    return min(GET(id*2,l,mid,u,v),GET(id*2+1,mid+1,r,u,v));
}
void UPDATE(int u, int v, int vl)
{
    UPDATE(1,1,n,u,v,vl);
}
int GET(int u, int v)
{
    return GET(1,1,n,u,v);
}
signed main()
{
    ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    freopen("duongsat.inp","r",stdin);
    freopen("duongsat.out","w",stdout);
    cin>>n>>m>>q;
    for (int i=1;i<=n;i++) UPDATE(i,i,m);
    for (int i=1;i<=q;i++)
    {
        int u,v,w;
        cin>>u>>v>>w;
        if (GET(u,v)>=w) cout<<"YES"<<'\n',UPDATE(u,v,-w);
        else cout<<"NO"<<'\n'; 
    }
    return 0;
}