"use strict";

function Main(input) {
  input = input.split("\n");
  var N = parseInt(input[0].split(" ")[0], 10);
  var K = parseInt(input[0].split(" ")[1], 10);
  var max = (N - 1) * (N - 2) / 2;

  if (max < K) {
    console.log(-1);
    return;
  }

  var ans = [];

  for (var i = 0; i < N - 1; i++) {
    ans.push([i + 1, N]);
  }

  var edges = [];

  for (var _i = 0; _i < N - 1; _i++) {
    for (var j = 0; j < _i; j++) {
      edges.push([_i + 1, j + 1]);
    }
  }

  var add = max - K;

  for (var _i2 = 0; _i2 < add; _i2++) {
    ans.push(edges[_i2]);
  }

  console.log(ans.length);

  for (var _i3 = 0; _i3 < ans.length; _i3++) {
    var e = ans[_i3];
    console.log(e[0], e[1]);
  }
}

Main(require("fs").readFileSync("/dev/stdin", "utf8"));