import sys sys.setrecursionlimit(1 << 25) n = int(input()) tree = [[] for _ in range(n + 1)] for _ in range(n - 1): u, v = map(int, input().split()) tree[u].append(v) tree[v].append(u) k = int(input()) V = set(map(int, input().split())) is_in_v = [False] * (n + 1) for u in V: is_in_v[u] = True cnt_v = [0] * (n + 1) lca_cnt = [0] * (n + 1) def dfs(u, p): cur = 1 if is_in_v[u] else 0 child_sum_sq = 0 for v in tree[u]: if v != p: child_v = dfs(v, u) cur += child_v child_sum_sq += child_v * child_v cnt_v[u] = cur lca_cnt[u] = cur * cur - child_sum_sq return cur dfs(1, 0) print(' '.join(map(str, lca_cnt[1:])))