n, m, k = map(int, input().split()) es = [[0] * n for _ in range(n)] m = n * (n - 1) // 2 - m for i in range(k-1): es[i][i+1] = 1 m -= 1 es[k-1][n-1] = 1 m -= 1 path = list(range(k)) + [n-1] for i in range(k, n-1): for j in range(min(3, len(path))): j = path[j] if m >= 1: es[min(i,j)][max(i,j)] = 1 m -= 1 for j in range(i+1, n-1): if m >= 1: es[i][j] = 1 m -= 1 if m != 0: print('No') exit() print('Yes') for j in range(n): for i in range(j): if not es[i][j]: print(i+1, j+1)