import sys input=sys.stdin.readline N=int(input()) edge=[[] for _ in range(N)] for _ in range(N-1): a,b=map(int,input().split()) edge[a-1].append(b-1) edge[b-1].append(a-1) M=int(input()) count=[False]*N vtoinfect=[0]*(N) V=list(map(int,input().split())) V=set(V) for v in V: count[v-1]+=1 for e in edge[v-1]: count[e]+=1 for v in V: for e in edge[v-1]: if count[e]==1: vtoinfect[v-1]+=1 ans_one=N-count.count(0) is_obake=[int(i+1 in V) for i in range(N)] for i in range(N): sub=0 if count[i]>0: sub+=1 for e in edge[i]: if count[e]>0 and count[e]-is_obake[i]-is_obake[e]==0: sub+=1 if is_obake[e]==1: sub+=vtoinfect[e]-int(count[i]==1) print(ans_one-sub)