N,K = map(int,input().split()) if K==1: print('Yes') print(*list(range(1,N+1))) exit() sum_all = N*(N+1)//2 if sum_all % K: print('No') exit() A= N//K if A==1: print('No') exit() print('Yes') ans = [[] for i in range(K)] a = N till = 2*K if A%2 else 0 forward = True while a > till: if forward: for i in range(K): ans[i].append(a) a -= 1 else: for i in range(K-1,-1,-1): ans[i].append(a) a -= 1 forward = not forward if A%2: m = (K+1)//2 for i in range(m): ans[i].append(2*i + 1) for i in range(m,K): ans[i].append(2*(i-m+1)) a = K+1 for i in range(m-1,-1,-1): ans[i].append(a) a += 1 for i in range(K-1,m-1,-1): ans[i].append(a) a += 1 for row in ans: print(*row)