from collections import defaultdict N, M, K = map(int, input().split()) G = [defaultdict(list) for _ in range(N + 1)] for i in range(M): u, v, w = map(int, input().split()) G[u][w].append(v) G[v][w].append(u) # G[src][cost] = [nex, ...] D = list(map(int, input().split())) D.reverse() ans = [] for i in range(1, N + 1): # 今頂点iにいるとする cur = {i} for d in D: nexset = set() # このターンはコストd掛かってる for pos in cur: # G[pos][d] for nex in G[pos][d]: nexset.add(nex) if nexset: cur = nexset else: break else: ans.append(i) print(len(ans)) print(*ans)