#include <iostream>
#include <cstdio>
#include <vector>
#include <map>
using namespace std;
//英语 看博友分析 抄博友程序 模拟
vector<int> ve[30];
map<int,int> mp;
int n;
void hy(int x)
{
//cout<<"huanyuan "<<x<<endl;
int y=mp[x];
int i;
for(i=0;i<ve[y].size();i++)
{
//cout<<"hi"<<endl;
int t=ve[y][i];
if(t==x)
{
break;
}
}
int ti=i+1;
for(i=i+1;i<ve[y].size();i++)
{
//cout<<"hi1"<<endl;
int t=ve[y][i];
ve[t].push_back(t);
mp[t]=t;
}
ve[y].resize(ti);//ac
/*
for(int i=ti;i<ve[y].size();i++)//mle
{
//cout<<"hi2"<<endl;
ve[y].pop_back();
}*/
/*
for(int i=0;i<n;i++)
{
cout<<i<<": ";
for(int j=0;j<ve[i].size();j++)
{
int t=ve[i][j];
cout<<t<<" ";
}
cout<<endl;
}*/
}
void lei(int x, int y)
{
//cout<<"lei "<<x<<" "<<y<<endl;
int tx=mp[x];
int ty=mp[y];
if(tx==ty)
{
return;
}
//cout<<tx<<" "<<ty<<endl;
int i;
for(i=0;i<ve[tx].size();i++)
{
//cout<<"hi"<<endl;
int t=ve[tx][i];
if(t==x)
{
break;
}
}
int ti=i;
//return;
for(;i<ve[tx].size();i++)
{
//cout<<"hi1"<<endl;
int t=ve[tx][i];
ve[ty].push_back(t);
mp[t]=ty;
}
ve[tx].resize(ti);//抄博友程序 ac
/*
for(int i=ti;i<ve[tx].size();i++)//mle
{
//cout<<"hi2"<<endl;
ve[tx].pop_back();
}*/
/*
for(int i=0;i<n;i++)
{
cout<<i<<": ";
for(int j=0;j<ve[i].size();j++)
{
int t=ve[i][j];
cout<<t<<" ";
}
cout<<endl;
}*/
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
ve[i].push_back(i);
mp[i]=i;
}
while(1)
{
string a,b;
int x,y;
cin>>a;
if(a=="quit")
{
for(int i=0;i<n;i++)
{
cout<<i<<": ";
for(int j=0;j<ve[i].size();j++)
{
int t=ve[i][j];
cout<<t<<" ";
}
cout<<endl;
}
break;
}
cin>>x>>b>>y;
//cout<<a<<" "<<x<<" "<<b<<" "<<y<<endl;
if(a=="move" && b=="onto")
{
hy(x);
hy(y);
lei(x,y);
}else if(a=="move" && b=="over")
{
hy(x);
lei(x,y);
}else if(a=="pile" && b=="onto")
{
hy(y);
lei(x,y);
}else if(a=="pile" && b=="over")
{
lei(x,y);
}
/*
for(int i=0;i<n;i++)
{
cout<<i<<": ";
for(int j=0;j<ve[i].size();j++)
{
int t=ve[i][j];
cout<<t<<" ";
}
cout<<endl;
}*/
}
return 0;
}