#include <bits/stdc++.h>
using namespace std;
int n, k;
int g[1010][1010];
int main() {
  cin >> n >> k;
  memset(g, 0, sizeof(g));
  for (int i = 0; i < n; i++)
    for (int j = 0; j < k; j++) {
      g[i][(i + 1 + j) % n]++;
    }
  bool fail = false;
  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++) {
      if (g[i][j] > 0 && g[j][i] > 0) fail = true;
      if (g[i][j] > 1) fail = true;
    }
  if (fail)
    printf("-1\n");
  else {
    printf("%d\n", n * k);
    for (int i = 0; i < n; i++)
      for (int j = 0; j < n; j++)
        if (g[i][j] > 0) printf("%d %d\n", i + 1, j + 1);
  }
}
