#!/usr/bin/env python3 n, m = map(int, input().split()) a = n // 2 b = n - a if m < n - 1 or a * b < m: print('NO') assert False else: print('YES') a = [ i + 1 for i in range(n) ] print(*a) def edges(): for j in range(b): yield ( 1, a + j + 1 ) for i in range(1, a): for j in range(b): yield ( i + 1, a + j + 1 ) for i, ( u, v ) in enumerate(edges()): if i == m: break print(u, v)