R=range N=int(input()) O=print a=[] M=N*2 for i in R(1,M): if i*i>=M:break if M%i==0: j=M//i;l,r=(j-i+1)>>1,(j+i-1)>>1 if(r+l)*(r-l+1)==M:a+=[(1,l,r)] for e in R(2,40): c={} c[0]=s=t=i=0; while t<=N:i+=1;t=i**e;s+=t;c[s]=i for v in c: if v-N in c:a+=[(e,c[v-N]+1,c[v])] O(len(a)) for e,l,r in sorted(a):O(e,l,r)