#include #include #include using namespace std; int N,M,op,a,b; vector > operations; multiset Q; inline void addMuchie(int a,int b) { operations.push_back(make_pair(a,b)); Q.insert(a); Q.insert(b); } inline void deleteMuchie(int pos) { Q.erase(Q.find(operations[pos-1].first)); Q.erase(Q.find(operations[pos-1].second)); } inline int query(int a,int b) { if(Q.empty()) return 1; if(a > *Q.begin()) return 0; if(b < *Q.rbegin()) return 0; return 1; } int main() { cin >> N >> M; for(int i=1;i<=M;i++) { cin >> op; switch(op) { case 1 : cin >> a >> b; addMuchie(a,b); break ; case 2 : cin >> a; deleteMuchie(a); break; case 3 : cin >> a >> b; cout << (query(a,b) ? "YES\n" : "NO\n"); } } }