#include <bits/stdc++.h>
using namespace std;
int main() {
  double n, k;
  cin >> n >> k;
  int t = ceil((n - 1) / k);
  if (ceil((n - 1 - t) / (k - 1)) == t) {
    printf("%d\n", 2 * t);
    int id = 1;
    queue<int> haha;
    haha.push(1);
    int s;
    s = haha.front();
    haha.pop();
    for (int i = 0; i < k; i++) {
      id++;
      haha.push(id);
      printf("%d %d\n", s, id);
    }
    while (!haha.empty() && id < n) {
      s = haha.front();
      haha.pop();
      id++;
      haha.push(id);
      printf("%d %d\n", s, id);
    }
  } else {
    printf("%d\n", 2 * t - 1);
    int id = 1;
    queue<int> haha;
    haha.push(1);
    int s;
    s = haha.front();
    haha.pop();
    for (int i = 0; i < k; i++) {
      id++;
      haha.push(id);
      printf("%d %d\n", s, id);
    }
    while (!haha.empty() && id < n) {
      s = haha.front();
      haha.pop();
      id++;
      haha.push(id);
      printf("%d %d\n", s, id);
    }
  }
  return 0;
}
