n,m,k=map(int,input().split()) l=[list(map(int,input().split())) for i in range(m)] d=list(map(int,input().split())) c=[[] for i in range(n)] for i in range(m): c[l[i][0]-1].append((l[i][1]-1,l[i][2])) c[l[i][1]-1].append((l[i][0]-1,l[i][2])) dp=[[0]*n for i in range(k+1)] for i in range(n): dp[0][i]=1 for i in range(1,k+1): for j1 in range(n): if dp[i-1][j1]==1: for j2 in range(len(c[j1])): if c[j1][j2][1]==d[i-1]: dp[i][c[j1][j2][0]]=1 ans=[] for i in range(n): if dp[-1][i]==1: ans.append(str(i+1)) print(len(ans)) print(' '.join(ans))