# 解説を見た。 import sys input = sys.stdin.readline N,M,K=list(map(int,input().split())) if K==1: if M==N*(N-1)//2: print("No") else: print("Yes") ANS=[] for i in range(1,N+1): for j in range(i+1,N+1): if i==1 and j==N: continue else: ANS.append((i,j)) ANS=ANS[:M] for a,b in ANS: print(a,b) exit() R=[1] for i in range(K-1): R.append(R[-1]+1) R.append(N) SET=set() for i in range(1,len(R)): SET.add((R[i-1],R[i])) SET.add((R[i],R[i-1])) ANS=[] AS=set() ANS.append((1,N)) AS.add((1,N)) for i in range(len(R)): for j in range(i+1,len(R)): a=R[i] b=R[j] if (a,b) in SET: pass else: if (a,b) in AS: pass else: ANS.append((a,b)) AS.add((a,b)) for i in range(K+1,N): for j in range(3,len(R)): a=i b=R[j] if a>b: a,b=b,a if (a,b) in SET: pass else: if (a,b) in AS: pass else: ANS.append((a,b)) AS.add((a,b)) if len(ANS)>M: print("No") exit() for i in range(1,N+1): for j in range(i+1,N+1): if (i,j) in SET: pass elif (i,j) in AS: pass else: ANS.append((i,j)) AS.add((i,j)) ANS=ANS[:M] if len(ANS)