N, M, K = map(int, raw_input().strip().split()) E = [[] for i in range(N+1)] for i in range(M): a, b, c = map(int, raw_input().strip().split()) E[a].append((b, c)) E[b].append((a, c)) ds = map(int, raw_input().strip().split()) def dfs(s, lst): if not lst: return [s] return [x for (t, c) in E[s] if c == lst[0] for x in dfs(t, lst[1:])] ss = set(s for i in range(N+1) for (s, c) in E[i] if c == ds[0]) ans = sorted(set(z for s in ss for z in dfs(s, ds[1:]))) L = len(ans) print(L) if L == 0: print(ans[0]) else: print(' '.join(map(str, ans)))