N, M, K = map(int,input().split()) l = [[] for i in range(N)] ans_l = [] def find_s(node, times): global ans_l if times == len(pay_l): ans_l.append(node) return 0 for li in l[node]: if li[0] == pay_l[times]: find_s(li[1],times + 1) for i in range(M): a, b, c = map(int, input().split()) l[a-1].append([c, b-1]) l[b-1].append([c, a-1]) pay_l = list(map(int, input().split())) for i in range(N): for l_i in l[i]: if l_i[0] == pay_l[0]: find_s(l_i[1], 1) print(len(ans_l)) moji = "" for li in ans_l: moji += str(li + 1) + " " print(moji)