N, M, K = map(int, input().split()) ABC = tuple(tuple(map(int, input().split())) for _ in range(M)) D = tuple(map(int, input().split())) dp = [[False] * (N+1) for _ in range(K+1)] for i in range(N+1): dp[0][i] = True for i in range(K): for j in range(M): if D[i] == ABC[j][2]: if dp[i][ABC[j][0]]: dp[i+1][ABC[j][1]] = True if dp[i][ABC[j][1]]: dp[i+1][ABC[j][0]] = True print(dp[K].count(True)) a = [i for i in range(N+1) if dp[K][i]] print(*a)