## https://yukicoder.me/problems/no/2674 from collections import deque MAX_INT = 10 ** 18 def main(): N, M= map(int ,input().split()) s, t, k = map(int, input().split()) s -= 1 t -= 1 next_nodes = [[] for _ in range(N)] for _ in range(M): a, b = map(int, input().split()) next_nodes[a - 1].append(b - 1) next_nodes[b - 1].append(a - 1) passed = [-1] * N dists = [MAX_INT] * N queue = deque() queue.append(s) passed[s] = 0 dists[s] = 0 while len(queue) > 0: v = queue.popleft() for w in next_nodes[v]: if passed[w] == -1: passed[w] = 1 - passed[v] dists[w] = 1 + dists[v] queue.append(w) if passed[t] == -1: print("Unknown") return # s とtが同じである場合 if s == t: nown = 0 for i in range(N): if passed[i] != -1: nown += 1 if nown == 1: if k % 2 == 1: print("No") else: print("Unknown") return if passed[t] == 0: if k % 2 == 1: print("No") elif dists[t] <= k: print("Yes") else: print("Unknown") elif passed[t] == 1: if k % 2 == 0: print("No") elif dists[t] <= k: print("Yes") else: print("Unknown") if __name__ == "__main__": main()