#include "stations.h"
#include <vector>
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
typedef vector<int> vi;
const int MaxN = 1e6+7;
int Tin[MaxN],cnt = 0;
vi adj[MaxN];
void dfs(int u,int p) {
Tin[u] = cnt++;
for (int v : adj[u]) {
if (v == p) continue;
dfs(v,u);
}
}
std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) {
// std::vector<int> labels(n);
// for (int i = 0; i < n; i++) {
// labels[i] = i;
// }
// return labels;
for (int i=0;i<u.size();i++) {
int U = u[i];
int V = v[i];
adj[U].pb(V);
adj[V].pb(U);
}
dfs(0,-1);
vi res;
for (int i=0;i<n;i++) res.pb(Tin[i]);
cnt = 0;
for (int i=0;i<n;i++) adj[i].clear();
return res;
}
int find_next_station(int s, int t, std::vector<int> c) {
sort(c.begin(),c.end());
if (s > t) swap(s,t);
vi::iterator it = lower_bound(c.begin(),c.end(),t);
it--;
return *it;
}