#include <bits/stdc++.h>
int g[1010][1010];
int main() {
  int n, k, ans, i, j;
  while (~scanf("%d%d", &n, &k)) {
    ans = 0;
    memset(g, 0, sizeof(g));
    for (i = 0; i < n; i++)
      for (j = i + 1; j <= i + k; j++) g[i][j % n] = 1, ans++;
    int flag = 1;
    for (i = 0; i < n; i++)
      for (j = 0; j < n; j++)
        if (g[i][j] && g[j][i]) flag = 0;
    if (flag) {
      printf("%d\n", ans);
      for (i = 0; i < n; i++)
        for (j = 0; j < n; j++)
          if (g[i][j]) printf("%d %d\n", i + 1, j + 1);
    } else
      puts("-1");
  }
  return 0;
}
