#include<iostream> #include<cstdlib> #include<vector> #include<cstdio> using namespace std; struct mu{int x,y;}; vector<mu> v; int t1,t2; bool apartine(int x) { return (t1<=x and x<=t2); } void operate() { int a,b;mu aux; int k; scanf("%d",&a); if(a==1) { scanf("%d%d",&(aux.x),&(aux.y)); v.push_back(aux); } else if(a==2) { scanf("%d",&b); v.erase(v.begin()+b-1); } else { scanf("%d%d",&t1,&t2); for(k=0;k<v.size();k++) if(apartine(v[k].x)) {if(!apartine(v[k].y)) {cout<<"NO\n";return;}} else{ if(apartine(v[k].y)) {cout<<"NO\n";return;}} cout<<"YES\n"; } } int main() { freopen("in","r",stdin); int n,m,l; cin>>n>>m; for(int k=1;k<=m;k++) operate(); }