#include <bits/stdc++.h>
using namespace std;
static int dp[2000][300];
int main() {
  int n, k;
  scanf("%d", &n);
  scanf("%d", &k);
  vector<pair<int, int> > v;
  if (n < 2 * k + 1) {
    printf("-1\n");
    return 0;
  } else {
    for (int i = 1; i <= n; i++) {
      int j = i + 1;
      for (int c = 0; c < k; c++) {
        if (j > n) {
          j %= n;
        }
        v.push_back(make_pair(i, j));
        j += 1;
      }
    }
    cout << v.size() << endl;
    for (int i = 0; i < v.size(); i++) {
      printf("%d %d\n", v[i].first, v[i].second);
    }
  }
}
