#!/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') else: print('YES') print(*[ i + 1 for i in range(n) ]) def edges(): for i in range(a): yield ( i + 1, a + 1 ) for i in range(a): for j in range(1, b): yield ( i + 1, a + j + 1 ) for i, ( u, v ) in enumerate(edges()): if i == m: break print(u, v)