#include<iostream>
#include<string>
#define N 100000
using namespace std;
bool cmp(string a,string b){//b是否为a的前缀
for(int i=0;i<b.length();i++)if(a[i]!=b[i])return false;return true;
}
string a[N];int len=0;
void del(int a1){//O(n)的删除
for(int i=a1;i<len;i++)a[i]=a[i+1];len--;
}
void in(string a1){//O(1)的入栈
a[len]=a1;len++;
}
int main(){
int n;string u1="",u2="",b;cin>>n;getline(cin,b);//搞掉换行符
while(n--){
getline(cin,b);
if(b=="start"){
if(len==0){
cout<<"Error\n";
}else{
if(u1!=""){in(u1);del(0);}
if(u2!=""){in(u2);del(0);}
if(len==1)u1=a[0],u2="";
else u1=a[0],u2=a[1];
cout<<u1;
if(u2!="")cout<<" "<<u2;cout<<endl;
}
}else if(cmp(b,"arrive")){
string c="";bool flag=1;
for(int i=7;i<b.length();i++)c+=b[i];
for(int i=0;i<len;i++)if(a[i]==c)flag=0;
if(flag){in(c);cout<<"OK\n";}else cout<<"Error\n";
}else if(cmp(b,"leave")){
string c="";
for(int i=6;i<b.length();i++)c+=b[i];
if(u1==c||u2==c)cout<<"Error\n";
else{bool f=1;for(int i=0;i<len;i++)if(a[i]==c){del(i);cout<<"OK\n";f=0;break;}if(f)cout<<"Erorr\n";}
}
}
return 0;
}