#include <bits/stdc++.h>
using namespace std;

int main(){
	int n, q;
	scanf("%d%d", &n, &q);
	vector<list<int> > ls(n);
	for(int i = 0; i < q; i++) {
		int id, t;
		scanf("%d", &id);
		if(id == 0) {
			int x;
			scanf("%d%d", &t, &x);
			ls[t].push_back(x);
		}
		if(id == 1) {
			scanf("%d", &t);
			bool flag = true;
			for(auto x: ls[t]) {
				if(flag) {
					printf("%d", x);
					flag = false;
				}else
					printf(" %d", x);
			}
			printf("\n");
		}
		if(id == 2) {
			int s;
			scanf("%d%d", &s, &t);
			if(!ls[s].empty()) {
				ls[t].splice(ls[t].end(), ls[s]);
			}
		}
	}
}

