N,M,K = map(int,input().split()) G = [[] for _ in range(N + 1)] for _ in range(M): a,b,c = map(int,input().split()) G[a].append((b,c)) G[b].append((a,c)) d = list(map(int,input().split())) dp = [[False] * (N+1) for _ in range(K)] for i in range(1,N+1): for v,c in G[i]: if c == d[0]: dp[0][v]= True for i in range(1,K): for j in range(1,N+1): if dp[i-1][j]: for v,c in G[j]: if c == d[i]: dp[i][v] = True ans = 0 for f in dp[K-1]: if f:ans += 1 print(ans) for i in range(1,N+1): if dp[K-1][i]: print(i,end = " ") print()