import sys sys.setrecursionlimit(10000) def solve(s,k): if k == K: return True res = False for i in range(N): for c in G[s][i]: if c == d[k]: res = (solve(i,k+1) or res) if res: break if res: break return res N,M,K = map(int,raw_input().split()) G = [[[] for _ in range(N)] for _ in range(N)] for roop in range(M): a,b,c = map(int,raw_input().split()) G[a-1][b-1].append(c);G[b-1][a-1].append(c) d = map(int,raw_input().split())[::-1] start = [] for s in range(N): if solve(s,0): start.append(s+1) print len(start) print " ".join(map(str,sorted(start)))