import sys sys.setrecursionlimit(1000000) N,M,K = map(int,input().split()) graph = [[] for i in range(N)] for i in range(M): a,b,c = map(int,input().split()) graph[a-1].append((b-1,c)) graph[b-1].append((a-1,c)) d = [int(i) for i in input().split()] used = [[False for j in range(K)]for i in range(N)] ans = set([]) def dfs(n,c): if c == K: ans.add(n+1) return if used[n][c]: return used[n][c] = True for e in graph[n]: if e[1] == d[c]: dfs(e[0],c+1) for i in range(N): dfs(i,0) print(len(ans)) print(' '.join(str(i) for i in sorted(list(ans))))