#include "split.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;
vector<vector<int>> adj;
vector<int> euler;
vector<bool> vis;
void dfs(int u, int p=-1) {
euler.push_back(u);
vis[u] = true;
for (auto v : adj[u]) {
if (v==p) continue;
if (vis[v]) continue;
dfs(v, u);
}
}
vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q) {
adj.assign(n, {});
euler.clear();
int m = p.size();
for (int i=0; i<m; i++) {
int u = p[i];
int v = q[i];
adj[u].push_back(v);
adj[v].push_back(u);
}
int r=0;
for (int i=0; i<n; i++) {
if (adj[i].size()==1) r = i;
}
vis.assign(n, false);
dfs(r);
vector<int> res(n);
for (int i=0; i<a; i++) {
res[euler[i]] = 1;
}
for (int i=a; i<a+b; i++) {
res[euler[i]] = 2;
}
for (int i=a+b; i<n; i++) {
res[euler[i]] = 3;
}
return res;
}