#include #define pii pair #define ll long long #define fi first #define se second #define BIT(i,x) (1&(x>>i-1)) #define MB(x) (x&(-x)) #define LB(x) __builtin_clzll(1) - __builtin_clzll(x) + 1; #define ONBIT(i,mask) ((mask (1<>l[i]>>r[i]>>p[i]; } for(int i=1;i<=n;i++) a[i]=i; do { kt=0; for(int i=1;i<=q;i++) { temp=1e18; for(int j=l[i];j<=r[i];j++) temp=min(temp,a[j]); if(temp!=p[i]) { kt=1; break; } } if(kt==0) { for(int i=1;i<=n;i++) cout<v; vector,ll>>kt; bool cmp(pair,ll> a,pair,ll> b) { return a.se>b.se; } void solve() { for(int i=0;i<=n;i++) v.push_back(i); for(ll i=1;i<=q;i++) { kt.push_back({{l[i],r[i]-l[i]},p[i]}); v[p[i]]=0; a[l[i]]=p[i]; } sort(kt.begin(),kt.end(),cmp); ll cs=n; for(auto z:kt) { for(int i=1;i<=z.fi.se;i++) { if(v[cs]==0 and cs>0) while(v[cs]==0 and cs>0) cs--; if(cs==0) { ck=1; break; } if(v[cs]0) while(v[cs]==0 and cs>0) cs--; cout<>n>>q; if(n<=10) sub1::solve(); else { ll d=0; for(int i=1;i<=q;i++) { cin>>l[i]>>r[i]>>p[i]; if(i>1 and l[i]>r[i-1]) d++; } if(d==q-1) { sub2::solve(); } } }