#!/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 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)