#include<bits/stdc++.h>
using namespace std;
const int mod=10007,base=130;
vector<string> a[mod+10];
vector<int> b[mod+10];
int len=0;
bool delflag=false;
long long hash_(string name){
long long h=1;
for(int i=0;i<name.size();i++){
h=(1ll*(h*base+name[i]))%mod;
}
return h;
}
void insert(string name,int score){
long long h=hash_(name);
bool flag=false;
for(int i=0;i<a[h].size();i++){
if (a[h][i]==name){
b[h][i]=score;
flag=true;
break;
}
}
if (!flag){
a[h].push_back(name);
b[h].push_back(score);
len++;
}
printf("OK\n");
return;
}
int find(string name){
long long h=hash_(name);
if (b[h].empty()) return -1;
else return b[h][0];
}
void del(string name){
long long h=hash_(name);
if (b[h].empty()) return;
else{
len--;
a[h].erase(a[h].begin());
b[h].erase(b[h].begin());
delflag=true;
}
return;
}
int main(){
int q,cz,x;
cin>>q;
string s;
while(q--){
scanf("%d",&cz);
delflag=false;
if (cz==1){
cin>>s>>x;
insert(s,x);
}
else if (cz==2){
cin>>s;
if (find(s)!=-1) printf("%d\n",find(s));
else printf("Not found\n");
}
else if (cz==3){
cin>>s;
del(s);
if (delflag) printf("Deleted successfully\n");
else printf("Not found\n");
}
else{
printf("%d\n",len);
}
}
return 0;
}