import sys from collections import deque def main(): sys.setrecursionlimit(1 << 25) N, M = map(int, sys.stdin.readline().split()) s, t, k = map(int, sys.stdin.readline().split()) edges = [[] for _ in range(N+1)] # 1-based indexing for _ in range(M): a, b = map(int, sys.stdin.readline().split()) edges[a].append(b) edges[b].append(a) # Bipartite coloring color = [-1] * (N+1) for start in range(1, N+1): if color[start] == -1: color[start] = 0 q = deque([start]) while q: u = q.popleft() for v in edges[u]: if color[v] == -1: color[v] = color[u] ^ 1 q.append(v) # Check parity of k against color difference if (color[s] == color[t]) != (k % 2 == 0): print("No") return # BFS to find shortest path in F visited = [-1] * (N+1) q = deque([s]) visited[s] = 0 found = False while q: u = q.popleft() if u == t: found = True break for v in edges[u]: if visited[v] == -1: visited[v] = visited[u] + 1 q.append(v) if found: l = visited[t] if k >= l and (k - l) % 2 == 0 and (M >= 1 or k == l): print("Yes") else: print("Unknown") else: if color[s] == color[t]: print("No") else: if k >= 1 and (k - 1) % 2 == 0: print("Unknown") else: print("No") if __name__ == "__main__": main()