n, m, k = map(int, input().split()) edges = [[] for _ in range(n)] for _ in range(m): a, b, c = map(int, input().split()) a -= 1 b -= 1 edges[a].append((b, c)) edges[b].append((a, c)) D = list(map(int, input().split())) se = set(range(n)) for d in D: se2 = set() for pos in se: for npos, c in edges[pos]: if c == d: se2.add(npos) se = se2 print(len(se)) lst = sorted(se) print(*(l + 1 for l in lst))