#include using namespace std; void output_edge(int a, int b){ cout << a << " " << b << "\n"; } int main(){ int N,K; cin >> N >> K; if (N>2*K){ cout << -1 << endl; return 0; } cout << 2*N-K << endl; int p,q; for (int i=1; i<=N-K; i++){ p=2*i-1; q=2*i; output_edge(p,p); output_edge(p,q); output_edge(q,p); } for (int r=2*(N-K)+1; r<=N; r++){ output_edge(r,r); } return 0; }