from collections import * def prime_decomposition(N): #O(sqrt(N)) P=defaultdict(int) for i in range(2,N): if i*i>N: break if i>2*10**5: print(-1) exit() if N%i==0: j=0 while N%i==0: N//=i j+=1 P[i]=j if N!=1: P[N]=1 return P X=int(input()) if X==1: print(2) print(1,2) print('b','g') exit() px=prime_decomposition(X) L=[] for k,v in px.items(): if k==2: for _ in range(v//2): L.append(4) if v%2==1: L.append(2) else: for _ in range(v): L.append(k) s=0 for i in L: s+=i+1 if s>2*10**5: print(-1) exit() print(s) for i in range(len(L)-1): print(i+1,i+2) now=len(L) for i in range(len(L)): for _ in range(L[i]): print(i+1,now+1) now+=1 C=[None]*now for i in range(len(L)): C[i]='b' for i in range(len(L),now): C[i]='g' print(*C)