#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:30777216")
using namespace std;
long long n, k, m, p, a, b, c;
long long mod = 1000000007;
long long ans = 0;
int main() {
  cin >> n >> k;
  vector<vector<long long> > ans(n);
  k--;
  long long cur_min = 1;
  long long cur_max = n * n;
  for (int i = 0; i < n; i++) {
    ans[i].resize(n);
    for (int j = 0; j < n; j++) {
      if (j < k) {
        ans[i][j] = cur_min;
        cur_min++;
      }
    }
  }
  long long ans_ = 0;
  for (int i = 0; i < n; i++) {
    for (int j = n - 1; j >= 0; j--) {
      if (j >= k) {
        ans[i][j] = cur_max;
        cur_max--;
      }
      if (j == k) ans_ += ans[i][j];
    }
  }
  cout << ans_ << endl;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      cout << ans[i][j] << ' ';
    }
    cout << endl;
  }
  return 0;
}
