"""
まず、最短距離が2であるような点の組み合わせの数が最も多くなるように木を作る。
そのあと、最短距離が2であるような点の組み合わせの数がKになるまで、辺を増やしていく。
"""

N,K = map(int,input().split())

if K > (N-1)*(N-2)//2:
    print(-1)
    exit()

ans = []
for i in range(1,N):
    ans.append((str(i),str(N)))

cnt = (N-1)*(N-2)//2
for i in range(1,N):
    for j in range(i+1,N):
        if cnt == K:
            break
        ans.append((str(i),str(j)))
        cnt -= 1
    else:
        continue
    break
print(len(ans))
for a in ans:
    print(" ".join(a)) """
まず、最短距離が2であるような点の組み合わせの数が最も多くなるように木を作る。
そのあと、最短距離が2であるような点の組み合わせの数がKになるまで、辺を増やしていく。
""" N,K = map(int,input().split()) N map(int,input().split()) map int input().split() ().split () input split K if K > (N-1)*(N-2)//2:
    print(-1)
    exit() K > (N-1)*(N-2)//2 K (N-1)*(N-2)//2 (N-1)*(N-2) N-1 N 1 N-2 N 2 2 print(-1) print -1 exit() exit ans = [] ans [] for i in range(1,N):
    ans.append((str(i),str(N))) i range(1,N) range 1 N ans.append((str(i),str(N))) ans.append ans append (str(i),str(N)) str(i) str i str(N) str N cnt = (N-1)*(N-2)//2 cnt (N-1)*(N-2)//2 (N-1)*(N-2) N-1 N 1 N-2 N 2 2 for i in range(1,N):
    for j in range(i+1,N):
        if cnt == K:
            break
        ans.append((str(i),str(j)))
        cnt -= 1
    else:
        continue
    break i range(1,N) range 1 N for j in range(i+1,N):
        if cnt == K:
            break
        ans.append((str(i),str(j)))
        cnt -= 1
    else:
        continue
     j range(i+1,N) range i+1 i 1 N if cnt == K:
            break
         cnt == K cnt K break ans.append((str(i),str(j))) ans.append ans append (str(i),str(j)) str(i) str i str(j) str j cnt -= 1 cnt 1 continue break print(len(ans)) print len(ans) len ans for a in ans:
    print(" ".join(a)) a ans print(" ".join(a)) print " ".join(a) " ".join " " join a ans = [] [] ans cnt -= 1 1 cnt K = map(int,input().split()) map(int,input().split()) K N,K = map(int,input().split()) map(int,input().split()) N cnt = (N-1)*(N-2)//2 (N-1)*(N-2)//2 cnt
"""
まず、最短距離が2であるような点の組み合わせの数が最も多くなるように木を作る。
そのあと、最短距離が2であるような点の組み合わせの数がKになるまで、辺を増やしていく。
"""

N,K = map(int,input().split())

if K > (N-1)*(N-2)//2:
    print(-1)
    exit()

ans = []
for i in range(1,N):
    ans.append((str(i),str(N)))

cnt = (N-1)*(N-2)//2
for i in range(1,N):
    for j in range(i+1,N):
        if cnt == K:
            break
        ans.append((str(i),str(j)))
        cnt -= 1
    else:
        continue
    break
print(len(ans))
for a in ans:
    print(" ".join(a))