#include using namespace std; void F() { int n, m; cin >> n >> m; list a; map::iterator> mp; for (int i = 0; i < n; i++) { int b; cin >> b; a.push_back(b); mp[b] = prev(a.end()); } while (m--) { int t; cin >> t; if (t == 1) { int x, y; cin >> x >> y; a.insert(mp[y], x); mp[x] = prev(mp[y]); } if (t == 2) { int x; cin >> x; a.push_back(x); mp[x] = prev(a.end()); } if (t == 3) { int x; cin >> x; a.erase(mp[x]); } } cout << a.size() << '\n'; for (auto i : a) cout << i << ' '; cout << '\n'; } int main() { #ifdef KRAKOZAYBRA FILE* stream; freopen_s(&stream, "input.txt", "r", stdin); //freopen_s(&stream, "output.txt", "w", stdout); #endif cin.tie(0)->sync_with_stdio(0); int _t = 1; //cin >> _t; while (_t--) F(); }