#include<bits/stdc++.h>
using namespace std;
const long long N=1e6+17;
long long n,m;
long long op,x,y,hed;
bool vis[N];
long long l[N],r[N];
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n>>m;
for(long long i=1;i<=n;i++){
l[i]=i-1;
r[i]=i+1;
if(i+1>n) r[i]=0;
vis[i]=1;
}
long long op=0,x=0,y=0;
while(m--){
cin>>op;
if(op==1){
cin>>x>>y;
if(x==y) continue;
if(vis[x]){
vis[x]=0;
if(r[x]){
l[r[x]]=l[x];
}
if(l[x]){
r[l[x]]=r[x];
}
if(hed==x){
hed=r[x];
}
}
vis[x]=1;
l[x]=l[y];
r[x]=y;
if(l[x]) r[l[y]]=x;
l[y]=x;
if(y==hed) hed=x;
}
if(op==2){
cin>>x>>y;
if(vis[x]==0)
if(x==y) continue;
if(vis[x]){
vis[x]=0;
if(r[x]){
l[r[x]]=l[x];
}
if(l[x]){
r[l[x]]=r[x];
}
if(hed==x){
hed=r[x];
}
}
vis[x]=1;
l[x]=y;
r[x]=r[y];
r[y]=x;
if(r[y]) l[r[y]]=x;
r[y]=x;
}
if(op==3){
cin>>x;
if(vis[x]==0){
continue;
}
vis[x]=0;
if(r[x]){
l[r[x]]=l[x];
}
if(l[x]){
r[l[x]]=r[x];
}
if(hed==x){
hed=r[x];
}
}
}
if(hed==0){
cout<<"Empty!"<<'\n';
return 0;
}
for(long long i=hed;i;i=r[i]){
cout<<i<<" ";
}
return 0;
}