#include <cstdio>
#include <vector>
using namespace std;
int n, num1, num2;
char op1[5], op2[5];
vector<int> v[25];
void get(int num, int &x, int &y) {
for (int i=0; i<n; i++)
for (unsigned int j=0; j<v[i].size(); j++)
if (v[i][j]==num) {
x=i;
y=j;
return;
}
}
void mov(int x1, int x2, int y1, int up1, int y2, int up2) {
for (int i=v[x1].size()-1; i>up1; i--) {
v[v[x1][i]].push_back(v[x1][i]);
v[x1].pop_back();
}
for (int i=v[x2].size()-1; i>up2; i--) {
v[v[x2][i]].push_back(v[x2][i]);
v[x2].pop_back();
}
for (int i=y2; i<=up2; i++)
v[x1].push_back(v[x2][i]);
v[x2].resize(y2);
}
void print() {
for (int i=0; i<n; i++) {
printf("%d:", i);
for (unsigned int j=0; j<v[i].size(); j++)
printf(" %d", v[i][j]);
puts("");
}
}
int main()
{
scanf("%d", &n);
for (int i=0; i<n; i++)
v[i].push_back(i);
while (~scanf("%s", op1)&&op1[0]!='q') {
scanf("%d%s%d", &num2, op2, &num1);
int x1, y1, x2, y2, up1, up2;
get(num1, x1, y1);
get(num2, x2, y2);
if (x1==x2)
continue;
up1=op2[1]=='n'?y1:v[x1].size()-1;
up2=op1[0]=='m'?y2:v[x2].size()-1;
mov(x1, x2, y1, up1, y2, up2);
}
print();
return 0;
}