INFTY = 2*10**5 P = list(range(INFTY+1)) P[1] = 0 for i in range(2,INFTY+1): if i*i>INFTY:break for j in range(i*i,INFTY+1,i): P[j] = P[i] Q = [] for i in range(2,INFTY+1): if P[i] == i: Q.append(i) X = int(input()) if X==1: print(2) print(1,2) print("b","g") else: D = {} x = X for p in Q: if x==1:break while x%p==0: D[p] = D.get(p,0)+1 x = x//p if x>1: print(-1) else: A = [] Col = {} v = 1 V = [] for p in D: if p==2: for i in range(D[p]//2): if len(V)>0: A.append((V[-1],v)) for j in range(1,4+1): A.append((v,v+j)) Col[v+j] = "g" V.append(v) Col[v] = "b" v += 5 if D[p]%2==1: if len(V)>0: A.append((V[-1],v)) for j in range(1,2+1): A.append((v,v+j)) Col[v+j] = "g" V.append(v) Col[v] = "b" v += 3 else: for i in range(D[p]): if len(V)>0: A.append((V[-1],v)) for j in range(1,p+1): A.append((v,v+j)) Col[v+j] = "g" V.append(v) Col[v] = "b" v += p+1 n = len(A)+1 if n>INFTY: print(-1) else: print(n) for u,v in A: print(u,v) Col = sorted(list(Col.items()),key=lambda x:x[0]) Col = [Col[i][1] for i in range(n)] print(*Col)