#include <bits/stdc++.h>
using namespace std;
const int inf = (int)1e9;
const int mod = (int)1e9 + 7;
int p[20][100100];
int lev[100100];
long long sumu[100100];
long long sumd[100100];
int cold[100100];
int colu[100100];
int lca(int u, int v) {
  if (lev[u] > lev[v]) swap(u, v);
  for (int i = 18; i >= 0; i--) {
    if (lev[v] - (1 << i) >= lev[u]) {
      v = p[i][v];
    }
  }
  if (v == u) return u;
  for (int i = 18; i >= 0; i--) {
    if (p[i][v] != p[i][u]) {
      v = p[i][v];
      u = p[i][u];
    }
  }
  return p[0][u];
}
int lca_lev(int u, int len) {
  for (int i = 18; i >= 0; i--) {
    if ((1 << i) <= len) {
      u = p[i][u];
      len -= (1 << i);
    }
  }
  return u;
}
vector<int> g[100100];
void dfs(int v, int pa) {
  p[0][v] = pa;
  for (int i = 1; i < 18; i++) {
    p[i][v] = p[i - 1][p[i - 1][v]];
  }
  lev[v] = lev[pa] + 1;
  cold[v]++;
  for (int i = 0; i < g[v].size(); i++) {
    int to = g[v][i];
    if (to == pa) continue;
    dfs(to, v);
    cold[v] += cold[to];
    sumd[v] += sumd[to] + cold[to];
  }
}
void dfs2(int v, int pa, int col, long long sum) {
  sumu[v] = sum;
  colu[v] = col;
  for (int i = 0; i < g[v].size(); i++) {
    int to = g[v][i];
    if (to == pa) continue;
    dfs2(to, v, col + cold[v] - cold[to],
         sum + sumd[v] - cold[to] - sumd[to] + col + cold[v] - cold[to]);
  }
}
int n, m;
int main() {
  cin >> n >> m;
  for (int i = 1, x, y; i < n; i++) {
    cin >> x >> y;
    g[x].push_back(y);
    g[y].push_back(x);
  }
  dfs(1, 0);
  dfs2(1, 0, 0, 0);
  for (int i = 0, x, y; i < m; i++) {
    cin >> x >> y;
    if (lev[x] > lev[y]) swap(x, y);
    int pa = lca(x, y);
    int len = lev[x] + lev[y] - 2 * lev[pa];
    double ans = 1 + len;
    if (pa != x) {
      ans += (sumd[x] * 1.0) / cold[x];
      ans += (sumd[y] * 1.0) / cold[y];
    } else {
      int px = lca_lev(y, lev[y] - lev[pa] - 1);
      long long sum = sumd[x] + sumu[x];
      int col = cold[x] + colu[x];
      sum -= sumd[px] + cold[px];
      col -= cold[px];
      ans += (sum * 1.0) / col;
      ans += (sumd[y] * 1.0) / cold[y];
    }
    printf("%.12lf\n", ans);
  }
  return 0;
}
