#include <bits/stdc++.h>
using namespace std;
multiset<int> st[1200007];
int a[1000007];
bool add(int id,int l,int r,int i,int x) {
if (l>i||r<i) return 0;
if (l==r&&r==i) {
st[id].insert(x);
return 1;
}
int g=(l+r)>>1;
int ok=max(add(id<<1,l,g,i,x),add(id<<1|1,g+1,r,i,x));
if (ok) st[id].insert(x);
return ok;
}
bool del(int id,int l,int r,int i,int x) {
if (l>i||r<i) return 0;
if (l==r&&r==i) {
if (st[id].find(x)!=st[id].end()){
st[id].erase(st[id].find(x));
return 1;
}
return 0;
}
int g=(l+r)>>1;
int ok=max(del(id<<1,l,g,i,x),del(id<<1|1,g+1,r,i,x));
if (ok) st[id].erase(st[id].find(x));
return ok;
}
int get(int id,int l,int r,int u,int v,int x) {
if (l>v||r<u) return 1e9+7;
if (l>=u&&r<=v) {
auto it=st[id].upper_bound(x);
if (it==st[id].end()) return 1e9+7;
return (*it);
}
int g=(l+r)>>1;
return min(get(id<<1,l,g,u,v,x),get(id<<1|1,g+1,r,u,v,x));
}
int main()
{
ios_base::sync_with_stdio();
cin.tie(0);
int n,q;
cin>>n>>q;
while (q--) {
int t;
cin>>t;
if (t==1) {
int pos,val;
cin>>pos>>val;
add(1,1,n,pos,val);
} else if (t==2) {
int pos,val;
cin>>pos>>val;
del(1,1,n,pos,val);
} else {
int l,r,val;
cin>>l>>r>>val;
int ans=get(1,1,n,l,r,val);
if (ans==1e9+7)
cout<<"NONE\n";
else
cout<<ans<<'\n';
}
}
// cout << "Hello, World!";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cm11bHRpc2V0PGludD4gc3RbMTIwMDAwN107CmludCBhWzEwMDAwMDddOwpib29sIGFkZChpbnQgaWQsaW50IGwsaW50IHIsaW50IGksaW50IHgpIHsKICBpZiAobD5pfHxyPGkpIHJldHVybiAwOwogIGlmIChsPT1yJiZyPT1pKSB7CiAgICBzdFtpZF0uaW5zZXJ0KHgpOwogICAgcmV0dXJuIDE7CiAgfQogIGludCBnPShsK3IpPj4xOwogIGludCBvaz1tYXgoYWRkKGlkPDwxLGwsZyxpLHgpLGFkZChpZDw8MXwxLGcrMSxyLGkseCkpOwogIGlmIChvaykgc3RbaWRdLmluc2VydCh4KTsKICByZXR1cm4gb2s7Cn0KYm9vbCBkZWwoaW50IGlkLGludCBsLGludCByLGludCBpLGludCB4KSB7CiAgaWYgKGw+aXx8cjxpKSByZXR1cm4gMDsKICBpZiAobD09ciYmcj09aSkgewogICAgaWYgKHN0W2lkXS5maW5kKHgpIT1zdFtpZF0uZW5kKCkpewogICAgICBzdFtpZF0uZXJhc2Uoc3RbaWRdLmZpbmQoeCkpOwogICAgICByZXR1cm4gMTsKICAgIH0KICAgIHJldHVybiAwOwogIH0KICBpbnQgZz0obCtyKT4+MTsKICBpbnQgb2s9bWF4KGRlbChpZDw8MSxsLGcsaSx4KSxkZWwoaWQ8PDF8MSxnKzEscixpLHgpKTsKICBpZiAob2spIHN0W2lkXS5lcmFzZShzdFtpZF0uZmluZCh4KSk7CiAgcmV0dXJuIG9rOwp9CmludCBnZXQoaW50IGlkLGludCBsLGludCByLGludCB1LGludCB2LGludCB4KSB7CiAgaWYgKGw+dnx8cjx1KSByZXR1cm4gMWU5Kzc7CiAgaWYgKGw+PXUmJnI8PXYpIHsKICAgIGF1dG8gaXQ9c3RbaWRdLnVwcGVyX2JvdW5kKHgpOwogICAgaWYgKGl0PT1zdFtpZF0uZW5kKCkpIHJldHVybiAxZTkrNzsKICAgIHJldHVybiAoKml0KTsKICB9CiAgaW50IGc9KGwrcik+PjE7CiAgcmV0dXJuIG1pbihnZXQoaWQ8PDEsbCxnLHUsdix4KSxnZXQoaWQ8PDF8MSxnKzEscix1LHYseCkpOwp9CmludCBtYWluKCkgCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oKTsKICAgIGNpbi50aWUoMCk7CiAgICBpbnQgbixxOwogICAgY2luPj5uPj5xOwogICAgd2hpbGUgKHEtLSkgewogICAgICBpbnQgdDsKICAgICAgY2luPj50OwogICAgICBpZiAodD09MSkgewogICAgICAgIGludCBwb3MsdmFsOwogICAgICAgIGNpbj4+cG9zPj52YWw7CiAgICAgICAgYWRkKDEsMSxuLHBvcyx2YWwpOwogICAgICB9IGVsc2UgaWYgKHQ9PTIpIHsKICAgICAgICBpbnQgcG9zLHZhbDsKICAgICAgICBjaW4+PnBvcz4+dmFsOwogICAgICAgIGRlbCgxLDEsbixwb3MsdmFsKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBpbnQgbCxyLHZhbDsKICAgICAgICBjaW4+Pmw+PnI+PnZhbDsKICAgICAgICBpbnQgYW5zPWdldCgxLDEsbixsLHIsdmFsKTsKICAgICAgICBpZiAoYW5zPT0xZTkrNykgCiAgICAgICAgICBjb3V0PDwiTk9ORVxuIjsKICAgICAgICBlbHNlCiAgICAgICAgICBjb3V0PDxhbnM8PCdcbic7CiAgICAgIH0KICAgIH0KICAgIC8vIGNvdXQgPDwgIkhlbGxvLCBXb3JsZCEiOwogICAgcmV0dXJuIDA7Cn0=