#include <bits/stdc++.h>
using namespace std;
#define int long long
#define bigInt __int128
#define PI 3.14159265
#define allr(v) v.rbegin(), v.rend()
#define all(v) v.begin(), v.end()
#define Sabry \
std::ios::sync_with_stdio(false), ios_base::sync_with_stdio(false); \
cin.tie(NULL), cout.tie(NULL);
// int dx[] = {-1, 0, 0, 1}, dy[] = {0, -1, 1, 0};
int dx1[] = {-1, -1, -1, 0, 0, 1, 1, 1}, dy1[] = {-1, 0, 1, -1, 1, -1, 0, 1};
const int MOD = 1e9 + 7;
const int MAX = 2e5 + 5;
const int INF = 1e18;
const long double EPS = 1e-7;
///
#ifndef ONLINE_JUDGE
auto f1 = freopen(R"(input.txt)", "r", stdin);
auto f2 = freopen(R"(output.txt)", "w", stdout);
#endif
///
///////////////
int modpow(int b , int p , int mod = MOD){
if (!p) return 1;
int z = modpow(b , p>>1 , mod);
z = ((z*z)%mod * (p&1 ? b : 1))%mod;
return z;
}
int inv(int a) {
return a <= 1 ? a : MOD - (int)(MOD/a) * inv(MOD % a) % MOD;
}
///////////////
void preCompute() {
}
vector<int> adj[MAX], child[MAX];
int submin[MAX], a[MAX];
vector<int> ord;
void dfs1(int u, int p) {
submin[u] = u;
for (int v : adj[u]) {
if (v == p) continue;
child[u].push_back(v);
dfs1(v, u);
submin[u] = min(submin[u], submin[v]);
}
}
// void dfs2(int u, int p) {
// a[u] = val++;
// for(auto v : adj[u])
// if(v != p)
// dfs2(v, u);
// }
void sol() {
int n, x; cin >> n >> x;
for(int i=0;i<n-1;i++){
int u, v; cin >> u >> v;
adj[u].push_back(v);
adj[v].push_back(u);
}
dfs1(x, -1);
// dfs2(x, -1);
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq;
pq.push({submin[x], x});
while(!pq.empty()) {
auto [val, u] = pq.top(); pq.pop();
ord.push_back(u);
for(auto v : child[u]){
pq.push({submin[v], v});
}
}
for(int i=0;i<n;i++){
a[ord[i]] = i+1;
}
for(int i=1;i<=n;i++){
cout << a[i] << " ";
}
}
signed main()
{
Sabry;
preCompute();
int t = 1;
// cin >> t;
// int cnt = 1;
while (t--)
{
// cout << "Case " << cnt << ": ";
sol();
// cnt++;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIGJpZ0ludCBfX2ludDEyOAojZGVmaW5lIFBJIDMuMTQxNTkyNjUKI2RlZmluZSBhbGxyKHYpIHYucmJlZ2luKCksIHYucmVuZCgpCiNkZWZpbmUgYWxsKHYpIHYuYmVnaW4oKSwgdi5lbmQoKQojZGVmaW5lIFNhYnJ5ICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBzdGQ6Omlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKSwgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IFwKICAgIGNpbi50aWUoTlVMTCksIGNvdXQudGllKE5VTEwpOwovLyBpbnQgZHhbXSA9IHstMSwgMCwgMCwgMX0sIGR5W10gPSB7MCwgLTEsIDEsIDB9OwppbnQgZHgxW10gPSB7LTEsIC0xLCAtMSwgMCwgMCwgMSwgMSwgMX0sIGR5MVtdID0gey0xLCAwLCAxLCAtMSwgMSwgLTEsIDAsIDF9Owpjb25zdCBpbnQgTU9EID0gMWU5ICsgNzsKY29uc3QgaW50IE1BWCA9IDJlNSArIDU7CmNvbnN0IGludCBJTkYgPSAxZTE4Owpjb25zdCBsb25nIGRvdWJsZSBFUFMgPSAxZS03OyAKIAoKLy8vCiNpZm5kZWYgT05MSU5FX0pVREdFCmF1dG8gZjEgPSBmcmVvcGVuKFIiKGlucHV0LnR4dCkiLCAiciIsIHN0ZGluKTsKYXV0byBmMiA9IGZyZW9wZW4oUiIob3V0cHV0LnR4dCkiLCAidyIsIHN0ZG91dCk7CiNlbmRpZgovLy8KCi8vLy8vLy8vLy8vLy8vLwppbnQgbW9kcG93KGludCBiICwgaW50IHAgLCBpbnQgbW9kID0gTU9EKXsKICAgIGlmICghcCkgcmV0dXJuIDE7CiAgICBpbnQgeiA9IG1vZHBvdyhiICwgcD4+MSAsIG1vZCk7CiAgICB6ID0gKCh6KnopJW1vZCAqIChwJjEgPyBiIDogMSkpJW1vZDsgCiAgICByZXR1cm4gejsKfQoKaW50IGludihpbnQgYSkgewogIHJldHVybiBhIDw9IDEgPyBhIDogTU9EIC0gKGludCkoTU9EL2EpICogaW52KE1PRCAlIGEpICUgTU9EOwp9CgovLy8vLy8vLy8vLy8vLy8Kdm9pZCBwcmVDb21wdXRlKCkgewoKfQoKdmVjdG9yPGludD4gYWRqW01BWF0sIGNoaWxkW01BWF07CmludCBzdWJtaW5bTUFYXSwgYVtNQVhdOwp2ZWN0b3I8aW50PiBvcmQ7Cgp2b2lkIGRmczEoaW50IHUsIGludCBwKSB7CiAgICBzdWJtaW5bdV0gPSB1OwogICAgZm9yIChpbnQgdiA6IGFkalt1XSkgewogICAgICAgIGlmICh2ID09IHApIGNvbnRpbnVlOwogICAgICAgIGNoaWxkW3VdLnB1c2hfYmFjayh2KTsKICAgICAgICBkZnMxKHYsIHUpOwogICAgICAgIHN1Ym1pblt1XSA9IG1pbihzdWJtaW5bdV0sIHN1Ym1pblt2XSk7CiAgICB9Cn0KCgoKLy8gdm9pZCBkZnMyKGludCB1LCBpbnQgcCkgewovLyAgICAgYVt1XSA9IHZhbCsrOwovLyAgICAgZm9yKGF1dG8gdiA6IGFkalt1XSkKLy8gICAgICAgICBpZih2ICE9IHApCi8vICAgICAgICAgICAgIGRmczIodiwgdSk7CiAgICAKLy8gfQoKdm9pZCBzb2woKSB7CiAgICBpbnQgbiwgeDsgY2luID4+IG4gPj4geDsKICAgIGZvcihpbnQgaT0wO2k8bi0xO2krKyl7CiAgICAgICAgaW50IHUsIHY7IGNpbiA+PiB1ID4+IHY7CiAgICAgICAgYWRqW3VdLnB1c2hfYmFjayh2KTsKICAgICAgICBhZGpbdl0ucHVzaF9iYWNrKHUpOwogICAgfQoKICAgIGRmczEoeCwgLTEpOwogICAgLy8gZGZzMih4LCAtMSk7CgogICAgcHJpb3JpdHlfcXVldWU8cGFpcjxpbnQsIGludD4sIHZlY3RvcjxwYWlyPGludCwgaW50Pj4sIGdyZWF0ZXI8cGFpcjxpbnQsIGludD4+PiBwcTsKCiAgICBwcS5wdXNoKHtzdWJtaW5beF0sIHh9KTsKCiAgICB3aGlsZSghcHEuZW1wdHkoKSkgewogICAgICAgIGF1dG8gW3ZhbCwgdV0gPSBwcS50b3AoKTsgcHEucG9wKCk7CiAgICAgICAgb3JkLnB1c2hfYmFjayh1KTsKICAgICAgICBmb3IoYXV0byB2IDogY2hpbGRbdV0pewogICAgICAgICAgICBwcS5wdXNoKHtzdWJtaW5bdl0sIHZ9KTsKICAgICAgICB9CiAgICB9CgogICAgZm9yKGludCBpPTA7aTxuO2krKyl7CiAgICAgICAgYVtvcmRbaV1dID0gaSsxOwogICAgfQoKICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKXsKICAgICAgICBjb3V0IDw8IGFbaV0gPDwgIiAiOwogICAgfQp9CgoKCnNpZ25lZCBtYWluKCkKewogICAgU2Ficnk7CiAgICBwcmVDb21wdXRlKCk7CiAgICBpbnQgdCA9IDE7CiAgICAvLyBjaW4gPj4gdDsKICAgIC8vIGludCBjbnQgPSAxOwkKICAgIHdoaWxlICh0LS0pCiAgICB7CiAgICAgICAgLy8gY291dCA8PCAiQ2FzZSAiIDw8IGNudCA8PCAiOiAiOwogICAgICAgIHNvbCgpOwogICAgICAgIC8vIGNudCsrOwogICAgfQogICAgcmV0dXJuIDA7Cn0=