#include <bits/stdc++.h>
using namespace std;
inline bool is_palindrome(const string& s) {
  return std::equal(s.begin(), s.end(), s.rbegin());
}
const long long MOD = 1000000007;
const long long INF = 1e9 + 5;
const double eps = 1e-7;
const double PI = acos(-1.0);
inline void debug_vi(vector<int> a) {
  for (long long i = (long long)(0); i < (long long)(a.size()); i++)
    cout << a[i] << " ";
}
inline void debug_vll(vector<long long> a) {
  for (long long i = (long long)(0); i < (long long)(a.size()); i++)
    cout << a[i] << " ";
}
const int N = 1e5 + 5;
int in[N];
int main() {
  std::ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int n, s, a, b;
  cin >> n >> s;
  memset(in, 0, sizeof(in));
  for (long long i = (long long)(0); i < (long long)(n - 1); i++) {
    cin >> a >> b;
    a--;
    b--;
    in[a]++;
    in[b]++;
  }
  int l = 0;
  for (long long i = (long long)(0); i < (long long)(n); i++) {
    if (in[i] == 1) {
      l++;
    }
  }
  double ans = 2.0 * s / l;
  cout << fixed << showpoint << setprecision(15) << ans;
  ;
  return 0;
}
