#include<bits/stdc++.h>
using namespace std;
struct person
{
long long unsigned score;
string name;
}a[100005];
void ko()
{
for(int i=0;i<=100000;i++)
{
a[i].name="-none";
a[i].score=-1;
}
}
bool cmp(string aa,string b)
{
if(aa.length()!=b.length()) return false;
for(int i=0;i<aa.length();i++) if(aa[i]!=b[i]) return false;
return true;
}
bool cha1(string s,int in,int cnt)
{
for(int i=1;i<=cnt;i++)
{
if(cmp(a[i].name,s))
{
a[i].score=in;
return false;
}
}
a[cnt+1].name=s,a[cnt+1].score=in;
return true;
}
long long unsigned found1(string s,int cnt)
{
for(int i=1;i<=cnt;i++) if(cmp(s,a[i].name)) return i;
return -1;
}
bool found2(string s,int cnt)
{
for(int i=1;i<=cnt;i++)
{
if(cmp(a[i].name,s))
{
a[i].name="-none",a[i].score=-1;
return true;
}
}
return false;
}
int main()
{
ko();
int i,n,in1,in3,cnt=0,sum=0;
string in2;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
cin>>in1;
if(in1==1)
{
cin>>in2>>in3;
if(cha1(in2,in3,cnt)) cnt++,sum++;
printf("OK\n");
}
else if(in1==2)
{
cin>>in2;
if(found1(in2,cnt)==-1) printf("Not found\n");
else printf("%d\n",a[found1(in2,cnt)].score);
}
else if(in1==3)
{
cin>>in2;
if(!found2(in2,cnt)) printf("Not found\n");
else
{
printf("Deleted successfully\n");
sum--;
}
}
else if(in1==4)
{
printf("%d\n",sum);
}
}
}
(开了O2)