N, M, K = map(int, input().split()) G = [[] for i in range(N)] for i in range(M): a, b, c = map(int, input().split()) a, b = a - 1 , b - 1 G[a].append((b, c)) G[b].append((a, c)) D = list(map(int, input().split())) pre = [1] * N for i in range(K): dp = [0] * N for s in range(N): if not pre[s]: continue for u, c in G[s]: if c != D[i]: continue dp[u] |= pre[s] dp, pre = pre, dp ans = [] for i in range(N): if pre[i]: ans.append(i + 1) print(len(ans)) print(*ans)