#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:102400000,102400000")
const int maxn = 0x3f3f3f3f;
const long long inf = 0x3f3f3f3f3f3f3f3f;
const double EI =
    2.71828182845904523536028747135266249775724709369995957496696762772407663035354594571382178525166427;
const double PI = 3.141592653589793238462643383279;
using namespace std;
int c[200010];
int main(void) {
  int n, m, i, cnt;
  while (~scanf("%d %d", &n, &m)) {
    printf("%d\n",
           (n - 1) / m * 2 + !!((n - 1) % m) + ((n - 1) % m > 1 ? 1 : 0));
    for (i = 2; i <= m + 1; i++) {
      printf("1 %d\n", i);
      c[i - 2] = i;
    }
    cnt = 0;
    for (i = m + 2; i <= n; i++) {
      printf("%d %d\n", c[cnt], i);
      c[cnt] = i;
      cnt++;
      cnt %= m;
    }
  }
  return 0;
}
