import sys input = sys.stdin.readline from collections import deque N,M,K,s,t=map(int,input().split()) E=[[] for i in range(N+1)] for i in range(M): x,y=map(int,input().split()) E[x].append(y) E[y].append(x) if K%2==1: print("Yes") exit() if E[s]==[] and E[t]==[]: print("No") exit() if len(E[s])==1 and len(E[t])==1 and E[s][0]==t: MAX=1<<63 for i in range(1,N+1): Q=deque() Q.append((-1,i)) USE=[-1]*(N+1) USE[i]=0 while Q: fr,x=Q.popleft() for to in E[x]: if to==fr: continue if USE[to]==-1: USE[to]=USE[x]^1 Q.append((x,to)) continue if USE[to]%2==USE[x]%2: continue else: MAX=min(MAX,USE[to]+USE[x]+1) if K>=MAX+3: print("Yes") exit() if K%2==1: print("Yes") else: print("No") exit() print("Yes")