#include <bits/stdc++.h>
#pragma optimize("Ofast")
using namespace std;
using ll = long long;
const int N = 2e5 + 5;
vector<int> g[N];
bool vis[N];
int d1[N], d2[N];
void dfs1(int s) {
  vis[s] = true;
  for (auto it : g[s]) {
    if (!vis[it]) {
      d1[it] = d1[s] + 1;
      dfs1(it);
    }
  }
}
int ans;
void dfs2(int s) {
  vis[s] = true;
  for (auto it : g[s]) {
    if (!vis[it]) {
      d2[it] = d2[s] + 1;
      if (d2[it] < d1[it]) dfs2(it);
    }
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  int n, x;
  cin >> n >> x;
  for (int i = 0; i < n - 1; ++i) {
    int a, b;
    cin >> a >> b;
    g[a].push_back(b);
    g[b].push_back(a);
  }
  dfs1(1);
  fill(vis, vis + N, false);
  ans = d1[x] * 2;
  dfs2(x);
  for (int i = 1; i <= n; ++i) {
    if (d2[i]) {
      ans = max(ans, max(d1[i], d2[i]) * 2);
    }
  }
  cout << ans << "\n";
  return 0;
}
