package _0942; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.math.BigInteger; import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; public class Main { public void solve(BufferedReader stdin, PrintWriter stdout) throws NumberFormatException, IOException { String[] line = stdin.readLine().split(" "); BigInteger n = new BigInteger(line[0]); BigInteger k = new BigInteger(line[1]); // (n * (n + 1) / 2) % k == 0 if (!n.multiply(n.add(BigInteger.ONE)).divide(BigInteger.valueOf(2L)).remainder(k).equals(BigInteger.ZERO)) { stdout.println("No"); return ; } List> matrix = new ArrayList<>(); for (int i = 0; i < k.intValue(); i++) { matrix.add(new ArrayList<>()); } int x = 0; int dx = 1; for (long i = 1; i <= n.longValue(); i++) { matrix.get(x).add(i); x += dx; if (x == -1) { x = 0; dx = 1; } if (x == k.longValue()) { x = k.intValue() - 1; dx = -1; } } stdout.println("Yes"); for (List row : matrix) { stdout.println(row.stream().map(Objects::toString).collect(Collectors.joining(" "))); } } public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); PrintWriter stdout = new PrintWriter(System.out, false); new Main().solve(stdin, stdout); stdout.flush(); } }