#include <bits/stdc++.h>
using namespace std;

#ifdef _RUTHEN
#include "debug.hpp"
#else
#define show(...) true
#endif

using ll = long long;
#define rep(i, n) for (int i = 0; i < (n); i++)
template <class T> using V = vector<T>;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int N, K;
    cin >> N >> K;
    if (N > 2 * K) {
        cout << -1 << '\n';
        return 0;
    }
    V<int> X, Y;
    rep(i, K) {
        X.push_back(i);
        Y.push_back(i);
    }
    rep(i, N - K) {
        X.push_back(i + K);
        Y.push_back(i);
        X.push_back(i);
        Y.push_back(i + K);
    }
    int M = X.size();
    cout << M << '\n';
    rep(i, M) cout << X[i] + 1 << ' ' << Y[i] + 1 << '\n';
    return 0;
}