import sys readline = sys.stdin.readline # T = int(readline()) # for _ in range(T): # ans = solve() # print(ans) # n = int(readline()) # a = [int(i) for i in readline().split()] # ab = [[int(i) for i in readline().split()] for _ in range()] # S = readline().strip() # b = [readline().strip() for _ in range()] n = int(readline()) if n <= 3: print(-1) def encode(x,y): return x*n+y def add1(d,t): def move(delta): nonlocal t t += delta rr.append(t) rr = [t] move(1) move(-n) move(-1) move(-n) move(1) for _ in range(d): move(-n) move(-1) for _ in range(d-1): move(n) move(-1) for v,w in zip(rr,rr[1:]): lst.append((v,w)) def add2(d,t): def move(delta): nonlocal t t += delta rr.append(t) rr = [t] move(-1) move(-1) move(-n) move(-1) move(n) for _ in range(d): move(-1) move(-n) for _ in range(d-1): move(1) move(-n) for v,w in zip(rr,rr[1:]): lst.append((v,w)) if n%2==0: lst = [(0,n),(0,1),(1,n+1),(n+1,n+2),(n+2,n+3),(2,3),(3,n+3),(n+2,2*n+2),(2*n,2*n+1),(2*n+2,2*n+3),(2*n+2,3*n+2),(2*n,3*n),(2*n+3,3*n+3),(3*n,3*n+1),(3*n+1,3*n+2)] for k in range(2,n//2): add1(2*k-2,encode(2*k,2*k)) add2(2*k-2,encode(2*k+1,2*k+1)) #print(len(lst)) for i,j in lst: print(i+1,j+1) else: lst = [(0,1),(0,n),(n,n+1),(n+1,n+2),(n+2,2),(2,3),(3,3+n),(3,4),(4,4+n),(4+n,4+2*n),(2*n+1,2*n+2),(2*n+2,2*n+3),(2*n+3,2*n+4),(3*n+2,4*n+2),(4*n+2,4*n+3),(4*n,4*n+1)] for j in [0,1,3,4]: for k in [2,3]: lst += [(k*n+j,(k+1)*n+j)] for k in range(2,n//2): add1(2*k-1,encode(2*k+1,2*k+1)) add2(2*k-1,encode(2*k+2,2*k+2)) #print(len(lst)) for i,j in lst: print(i+1,j+1)