import sys input = lambda :sys.stdin.readline()[:-1] ni = lambda :int(input()) na = lambda :list(map(int,input().split())) yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES") no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO") ####################################################################### """ k = n - 1 => m = n - 1 k = n - 2 => 2 <= m <= n * (n - 1) // 2 - 1 k = n - 3 => k = 1 => 1 <= m """ def solve(n, m, k): if m < k: return if k == 1: res = [] res.append((0, n - 1)) for i in range(n): for j in range(i + 1, n): if i == 0 and j == n - 1: continue if len(res) < m: res.append((i, j)) return res else: res = [] # 0, 1, 2, ..., k - 1, n - 1 for i in range(k - 1): res.append((i, i + 1)) res.append((k-1, n - 1)) for i in range(k, n - 1): if len(res) < m: res.append((0, i)) if len(res) < m: res.append((1, i)) if len(res) < m: res.append((2, i)) for j in range(i + 1, n - 1): if len(res) < m: res.append((i, j)) if len(res) < m: return return res n, m, k = na() m = n * (n - 1) // 2 - m res = solve(n, m, k) if res is None: print("No") else: print("Yes") f = [[0] * n for i in range(n)] for i, j in res: if j < i: i, j = j, i f[i][j] = 1 res = [] for i in range(n): for j in range(i + 1, n): if f[i][j] == 0: res.append((i, j)) for i, j in res: print(i + 1, j + 1)