import sys sys.setrecursionlimit(100000000) N,M,K = map(int,raw_input().split()) E = [[] for i in xrange(N)] ans = set() for i in xrange(M): a,b,c = map(int,raw_input().split()) a -= 1; b -= 1 E[a].append((b,c)) E[b].append((a,c)) d = map(int,raw_input().split()) d.reverse() now = True def dfs(h,k): global now if k == K or now: now = True return True res = False for nxt,c in E[h]: if c == d[k]: res |= dfs(nxt,k+1) return res for i in xrange(N): now = False if dfs(i,0): ans.add(i+1) print len(ans) print " ".join(map(str,sorted(ans)))