local ior = io.input() local n, m, k = ior:read("*n", "*n", "*n") local matrix_list = {} local function make_matrix() local tmp = {} for i = 1, n * n do tmp[i] = 0 end return tmp end for i = 1, m do local a, b, c = ior:read("*n", "*n", "*n") if(matrix_list[c] == nil) then matrix_list[c] = make_matrix() end matrix_list[c][(a - 1) * n + b] = 1 matrix_list[c][(b - 1) * n + a] = 1 end local vec = {} for i = 1, n do vec[i] = 1 end local mmi = math.min for i_k = 1, k do local mat = matrix_list[ior:read("*n")] local ret_vec = {} for i = 1, n do ret_vec[i] = 0 end for i = 1, n do for j = 1, n do ret_vec[i] = ret_vec[i] + mat[(i - 1) * n + j] * vec[j] end ret_vec[i] = mmi(1, ret_vec[i]) end vec = ret_vec end local cnt = 0 for i = 1, n do if(0 < vec[i]) then cnt = cnt + 1 end end print(cnt) local fst = true for i = 1, n do if(0 < vec[i]) then if(fst) then fst = false else io.write(" ") end io.write(i) end end io.write("\n")