N, M, K = [int(x) for x in input().split()] a = [0] * M b = [0] * M c = [0] * M for i in range(M): a[i], b[i], c[i] = [int(x) for x in input().split()] d = [int(x) for x in input().split()] pos = [[False] * (N + 1) for _ in range(K + 1)] for i in range(1, len(pos[0])): pos[0][i] = True for kk in range(K): for mm in range(M): if c[mm] == d[kk]: if pos[kk][a[mm]]: pos[kk + 1][b[mm]] = True if pos[kk][b[mm]]: pos[kk + 1][a[mm]] = True cnt = pos[K].count(True) lis = [] for nn, ok in enumerate(pos[K]): if ok: lis += [str(nn)] print(cnt) print(' '.join(lis))