N,M,K=map(int,raw_input().split()) edge=[[]for i in range(N)] s=set([]) for i in range(M): a,b,c = map(int,raw_input().split()) edge[a-1].append((b-1,c)) edge[b-1].append((a-1,c)) d=map(int,raw_input().split()) for i in range(N): for j,c in edge[i]: if c == d[0]: s.add(i) for i in range(1,K): t=set([]) for k in s: for j,c in edge[k]: if c==d[i]: t.add(j) s=t ans=list(s) ans.sort() print len(ans) for a in ans: print a+1,