#include <iostream>
#include <cstdio>
#include <stdlib.h>
#include <algorithm>
#include <map>
#include <queue>
#include <iomanip>
#include <string>
#include <math.h>
#include <limits>
#include <map>
#include <float.h>
#include <limits.h>
#include <string.h>
using namespace std;
typedef unsigned long long ull;
typedef long long ll;
typedef vector<int> vi;
typedef vector<int> vi;
typedef pair<int, int> ii;
typedef vector<ii> vii;
typedef vector<vii> ADJ;
typedef map<string, int> msi;
#define rep(i,a,N) for(int i=a;i<N;++i)
#define TRvii(c,it) for(vii::iterator it=(c).begin();it!=(c).end();it++)
#define TR(c, it) for(typeof(c) it=(c).begin();it!=(c).end();++it )
#define mod 1000000007
#define SIZE 1<<31+10001
int main(){
int N,M,count=1,tmp;
char ch;
multimap<int,int> mymap;
scanf("%d %d",&N,&M);
rep(i,0,N){
scanf("%d",&tmp);
mymap.insert(make_pair(tmp,count++));
}
while(M--){
scanf(" %c %d",&ch,&tmp);
if(ch=='I'){
mymap.insert(make_pair(tmp,count++));
printf("%d\n",count-1);
}
else if(ch=='S'){
map<int,int>::iterator search;
search = mymap.find(tmp);
if(search!=mymap.end())
printf("%d\n",search->second );
else
printf("NONE\n");
}
else{// D
map<int,int>::iterator search;
search = mymap.find(tmp);
if(search!=mymap.end()){
printf("%d\n",search->second);
mymap.erase(search);
}
else
printf("NONE\n");
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxxdWV1ZT4KI2luY2x1ZGUgPGlvbWFuaXA+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxtYXRoLmg+CiNpbmNsdWRlIDxsaW1pdHM+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxmbG9hdC5oPgojaW5jbHVkZSA8bGltaXRzLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIHVsbDsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgdmVjdG9yPGludD4gdmk7CnR5cGVkZWYgdmVjdG9yPGludD4gdmk7CnR5cGVkZWYgcGFpcjxpbnQsIGludD4gaWk7CnR5cGVkZWYgdmVjdG9yPGlpPiB2aWk7CnR5cGVkZWYgdmVjdG9yPHZpaT4gQURKOwp0eXBlZGVmIG1hcDxzdHJpbmcsIGludD4gbXNpOwoKI2RlZmluZSByZXAoaSxhLE4pIGZvcihpbnQgaT1hO2k8TjsrK2kpCiNkZWZpbmUgVFJ2aWkoYyxpdCkgZm9yKHZpaTo6aXRlcmF0b3IgaXQ9KGMpLmJlZ2luKCk7aXQhPShjKS5lbmQoKTtpdCsrKQojZGVmaW5lIFRSKGMsIGl0KSBmb3IodHlwZW9mKGMpIGl0PShjKS5iZWdpbigpO2l0IT0oYykuZW5kKCk7KytpdCApCiNkZWZpbmUgbW9kIDEwMDAwMDAwMDcKI2RlZmluZSBTSVpFIDE8PDMxKzEwMDAxCgppbnQgbWFpbigpewoJaW50IE4sTSxjb3VudD0xLHRtcDsKCWNoYXIgY2g7CgltdWx0aW1hcDxpbnQsaW50PiBteW1hcDsKCXNjYW5mKCIlZCAlZCIsJk4sJk0pOwoJcmVwKGksMCxOKXsKCQlzY2FuZigiJWQiLCZ0bXApOwoJCW15bWFwLmluc2VydChtYWtlX3BhaXIodG1wLGNvdW50KyspKTsKCgl9Cgl3aGlsZShNLS0pewoJCXNjYW5mKCIgJWMgJWQiLCZjaCwmdG1wKTsKCQlpZihjaD09J0knKXsKCQkJbXltYXAuaW5zZXJ0KG1ha2VfcGFpcih0bXAsY291bnQrKykpOwoJCQlwcmludGYoIiVkXG4iLGNvdW50LTEpOwoJCX0KCQllbHNlIGlmKGNoPT0nUycpewoJCQltYXA8aW50LGludD46Oml0ZXJhdG9yIHNlYXJjaDsKCQkJc2VhcmNoID0gbXltYXAuZmluZCh0bXApOwoJCQlpZihzZWFyY2ghPW15bWFwLmVuZCgpKQoJCQkJcHJpbnRmKCIlZFxuIixzZWFyY2gtPnNlY29uZCApOwoJCQllbHNlCgkJCQlwcmludGYoIk5PTkVcbiIpOwoJCX0KCQllbHNley8vIEQKCQkJbWFwPGludCxpbnQ+OjppdGVyYXRvciBzZWFyY2g7CgkJCXNlYXJjaCA9IG15bWFwLmZpbmQodG1wKTsKCQkJaWYoc2VhcmNoIT1teW1hcC5lbmQoKSl7CgkJCQlwcmludGYoIiVkXG4iLHNlYXJjaC0+c2Vjb25kKTsKCQkJCW15bWFwLmVyYXNlKHNlYXJjaCk7CgkJCX0KCQkJZWxzZQoJCQkJcHJpbnRmKCJOT05FXG4iKTsKCgkJfQoJfQoKCXJldHVybiAwOwp9