#include "split.h"
#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
vector<int>adj[N];
int col[N], c[3], val[3], lst = 0;
bool visited[N];
int deg[N];
void dfs(int node, int comp){
if(c[comp] == val[comp]) return;
lst = node;
col[node] = comp + 1;
c[comp]++;
visited[node] = 1;
for(auto i : adj[node]){
if(visited[i]) continue;
dfs(i, comp);
}
}
vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q) {
vector<int> res;
for(int i = 0; i < p.size(); i++){
adj[p[i]].push_back(q[i]);
adj[q[i]].push_back(p[i]);
deg[p[i]]++;
deg[q[i]]++;
}
val[0] = a;
val[1] = b;
val[2] = c;
lst = 0;
if(b > c){
dfs(0, 2);
}else{
dfs(0, 1);
}
for(int i = 0; i < n; i++){
if(!visited[i]){
col[i] = 1;
visited[i] = 1;
break;
}
}
for(int i = 0; i < n; i++){
if(!visited[i]){
if(b > c){
col[i] = 2;
}else{
col[i] = 3;
}
visited[i] = 1;
break;
}
}
for(int i = 0; i < n; i++){
res.push_back(col[i]);
}
return res;
}