#region Header #!/usr/bin/env python3 # from typing import * import sys import io import math import collections import decimal import itertools from queue import PriorityQueue import bisect import heapq def input(): return sys.stdin.readline()[:-1] sys.setrecursionlimit(1000000) #endregion # _INPUT = """# paste here... # """ # sys.stdin = io.StringIO(_INPUT) def main(): N, M, K = map(int, input().split()) G = [list() for _ in range(N)] d = dict() for _ in range(M): a, b, c = map(int, input().split()) a -= 1 b -= 1 G[a].append((b, c)) G[b].append((a, c)) if c not in d: d[c] = set() d[c].add(a) d[c].add(b) D = list(map(int, input().split())) cities = d[D[0]] for i in range(1, K): if not cities: break cities1 = set() for a in cities: for (b, c) in G[a]: if c == D[i]: cities1.add(b) cities = cities1 print(len(cities)) print(*sorted([a+1 for a in cities])) if __name__ == '__main__': main()