#include int u[6003], v[6003]; int par[3003], depth[3003], par_id[3003]; int stack[3003], ss; int ans[3003]; int main() { int n, m; scanf("%d %d", &n, &m); int i, j; for (i = 0; i < n - 1; i++) { scanf("%d %d", &u[i], &v[i]); u[i + n - 1] = --v[i]; v[i + n - 1] = --u[i]; } for (i = 0; i < n; i++) par[i] = -1; par[0] = 0; depth[0] = 0; stack[0] = 0; ss = 1; while (ss > 0) { i = stack[--ss]; for (j = 0; j < 2 * n - 2; j++) { if (u[j] != i) continue; if (par[v[j]] < 0) { par[v[j]] = i; par_id[v[j]] = j % (n - 1); depth[v[j]] = depth[i] + 1; stack[ss++] = v[j]; } } } for (i = 0; i < n; i++) ans[i] = 0; int s, t, res; for (; m > 0; m--) { scanf("%d %d", &s, &t); s--; t--; res = n; while (s != t) { if (depth[s] < depth[t]) { if (res > par_id[t]) res = par_id[t]; t = par[t]; } else { if (res > par_id[s]) res = par_id[s]; s = par[s]; } } for (j = 0; j < res; j++) ans[j]++; } for (i = 0; i < n - 1; i++) printf("%d\n", ans[i]); return 0; }