#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxm=1e5+10;
const int maxn=1e3+10;
const int mod=1e9+7;
inline int read(){
int x=0,y=1;char c=getchar();
for(;c<'0'||c>'9';c=getchar())if(c=='-')y=-1;
for(;c>='0'&&c<='9';c=getchar())x=(x<<1)+(x<<3)+(c^48);
return x*y;
}
int a[maxm];
map<string,bool>mp;
string s1="nigannnnnn",s2="nigannnnnn";
deque<string>q;
void start()
{
if(s1!="nigannnnnn")
{
q.pop_front();
q.push_back(s1);
if(s2!="nigannnnnn")
q.pop_front(),q.push_back(s2);
}
s1="nigannnnnn",s2="nigannnnnn";
if(!q.empty())
{
while(1)
{
if(q.empty()) break;
if(mp[q.front()]!=0)
{
break;
}
q.pop_front();
}
if(!q.empty())
s1=q.front(),q.pop_front();
}
if(!q.empty())
{
while(1)
{
if(q.empty()) break;
if(mp[q.front()]!=0) break;
q.pop_front();
}
if(!q.empty())
s2=q.front(),q.pop_front();
}
if(s1=="nigannnnnn") cout<<"Error\n";
else
if(s2=="nigannnnnn")
{
cout<<s1<<"\n";
q.push_front(s1);
}
else
{
cout<<s1<<" "<<s2<<"\n";
q.push_front(s2);
q.push_front(s1);
}
}
void arrive(string suv)
{
if(!q.empty())
while(1)
{
if(mp[q.front()]!=0) break;
q.pop_front();
if(q.empty()) break;
}
if(suv!=s1&&suv!=s2&&mp[suv]==0)
{
q.push_back(suv);
mp[suv]=1;
cout<<"OK\n";
return ;
}
else
{
cout<<"Error\n";
return ;
}
}
void leave(string suv)
{
if(suv!=s1&&suv!=s2&&mp[suv]==1)
{
mp[suv]=0;
cout<<"OK\n";
return ;
}
else
{
cout<<"Error\n";
}
}
signed main()
{
int n=read();
while(n--)
{
string s,sx;
cin>>s;
if(s=="arrive") cin>>sx,arrive(sx);
else if(s=="start") start();
else if(s=="leave") cin>>sx,leave(sx);
}
return 0;
}