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()) def dfs(h,k): if k == K: ans.add(h) return for nxt,c in E[h]: if c == d[k]: dfs(nxt,k+1) for i in xrange(N): dfs(i,0) print len(ans) print " ".join(map(lambda x: str(x+1),sorted(ans)))