#include <algorithm>
#include <iomanip>
#include <iostream>
#include <vector>
#include <set>
#include <numeric>
#include <map>
#include <unordered_map>
using namespace std;
#define all(a) a.begin(), a.end()
#define ll long long
#define fo(i,n) for (long long i = 0; i < n; i++)
int main()
{
ll n,q,op,a,b;
cin >> n >> q;
vector<vector<ll>> nest(n,vector<ll>(1));
map<ll,ll> locations;
fo(j,n)
{
nest[j][0] = j;
locations[j] = j;
}
for (int j = 0; j < q; j++)
{
cin >> op;
if (op == 1)
{
cin >> a >> b;
ll spot = locations[a-1];
nest[spot].erase(find(all(nest[spot]),a-1));
nest[b-1].push_back(a-1);
locations[a-1] = b-1;
}
if (op == 2)
{
cin >> a >> b;
for (ll item : nest[a-1])
{
locations[item] = b-1;
}
for (ll item : nest[b-1])
{
locations[item] = a-1;
}
nest[a-1].swap(nest[b-1]);
}
if (op == 3)
{
cin >> a;
cout << locations[a-1]+1 << '\n';
}
}
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvbWFuaXA+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPG51bWVyaWM+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIGFsbChhKSBhLmJlZ2luKCksIGEuZW5kKCkKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBmbyhpLG4pIGZvciAobG9uZyBsb25nIGkgPSAwOyBpIDwgbjsgaSsrKQoKaW50IG1haW4oKQp7CiAgICBsbCBuLHEsb3AsYSxiOwogICAgY2luID4+IG4gPj4gcTsKICAgIHZlY3Rvcjx2ZWN0b3I8bGw+PiBuZXN0KG4sdmVjdG9yPGxsPigxKSk7CiAgICBtYXA8bGwsbGw+IGxvY2F0aW9uczsKICAgIGZvKGosbikKICAgIHsKICAgICAgICBuZXN0W2pdWzBdID0gajsKICAgICAgICBsb2NhdGlvbnNbal0gPSBqOwogICAgfQogICAgZm9yIChpbnQgaiA9IDA7IGogPCBxOyBqKyspCiAgICB7CiAgICAgICAgY2luID4+IG9wOwogICAgICAgIGlmIChvcCA9PSAxKQogICAgICAgIHsKICAgICAgICAgICAgY2luID4+IGEgPj4gYjsKICAgICAgICAgICAgbGwgc3BvdCA9IGxvY2F0aW9uc1thLTFdOwogICAgICAgICAgICBuZXN0W3Nwb3RdLmVyYXNlKGZpbmQoYWxsKG5lc3Rbc3BvdF0pLGEtMSkpOwogICAgICAgICAgICBuZXN0W2ItMV0ucHVzaF9iYWNrKGEtMSk7CiAgICAgICAgICAgIGxvY2F0aW9uc1thLTFdID0gYi0xOwogICAgICAgIH0KICAgICAgICBpZiAob3AgPT0gMikKICAgICAgICB7CiAgICAgICAgICAgIGNpbiA+PiBhID4+IGI7CiAgICAgICAgICAgIGZvciAobGwgaXRlbSA6IG5lc3RbYS0xXSkKICAgICAgICAgICAgewogICAgICAgICAgICAJbG9jYXRpb25zW2l0ZW1dID0gYi0xOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvciAobGwgaXRlbSA6IG5lc3RbYi0xXSkKICAgICAgICAgICAgewogICAgICAgICAgICAJbG9jYXRpb25zW2l0ZW1dID0gYS0xOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG5lc3RbYS0xXS5zd2FwKG5lc3RbYi0xXSk7CiAgICAgICAgfQogICAgICAgIGlmIChvcCA9PSAzKQogICAgICAgIHsKICAgICAgICAgICAgY2luID4+IGE7CiAgICAgICAgICAgIGNvdXQgPDwgbG9jYXRpb25zW2EtMV0rMSA8PCAnXG4nOwogICAgICAgIH0KICAgIH0KCn0=