#include using namespace std; int main(){ int N, Q; cin >> N >> Q; vector> E(N); for (int i = 0; i < N - 1; i++){ int U, V; cin >> U >> V; U--; V--; E[U].push_back(V); E[V].push_back(U); } for (int i = 0; i < Q; i++){ int X, Y; cin >> X >> Y; X--; Y--; vector d1(N, -1); d1[X] = 0; queue Q1; Q1.push(X); while (!Q1.empty()){ int v = Q1.front(); Q1.pop(); for (int w : E[v]){ if (d1[w] == -1){ d1[w] = d1[v] + 1; Q1.push(w); } } } vector d2(N, -1); d2[Y] = 0; queue Q2; Q2.push(Y); while (!Q2.empty()){ int v = Q2.front(); Q2.pop(); for (int w : E[v]){ if (d2[w] == -1){ d2[w] = d2[v] + 1; Q2.push(w); } } } int ans = 0; for (int j = 0; j < N; j++){ if (d1[j] == d2[j]){ ans++; } } cout << ans << endl; } }