#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:100000000000000")
using namespace std;
long long n, k;
vector<long long> ans;
int gcd(int a, int b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
int main() {
  scanf("%I64d %I64d", &n, &k);
  long long e = 2, o = 1, mx = 0, tn = n;
  while (tn--) {
    long long a = k * o;
    ans.push_back(k * o);
    o += 2;
    long long b = k * o;
    ans.push_back(k * o);
    o += 2;
    long long c = k * o;
    ans.push_back(k * o);
    mx = max(k * o, mx);
    while (gcd(e * k, a) != k || gcd(e * k, b) != k || gcd(c, k * e) != k)
      e += 2;
    ans.push_back(e * k);
    e += 2;
    mx = max(mx, e - 2);
    o += 2;
  }
  printf("%I64d\n", mx);
  int j = 0;
  while (j < ans.size()) {
    for (int i = 0; i < 4; i++) printf("%I64d ", ans[j++]);
    printf("\n");
  }
  return 0;
}
