K,L,R=map(int,input().split()) mod=10**9+7 K=min(K,64) K-=1 MOJI=[1] SUM=[1] MUL=[1] for i in range(65): k=(i+2)**2 S=0 M=1 for s in str(k): if s=="0": S+=10 M*=10 else: S+=int(s) M*=int(s) M%=mod MOJI.append(MOJI[-1]*2+len(str((i+2)**2))) SUM.append(SUM[-1]*2+S) MUL.append(MUL[-1]*MUL[-1]*M%mod) if R>MOJI[K]: print(-1) exit() if K==0: print(0,0) exit() def calc(K,x): #print("!",K,x) if x==0: return 0,1 if MOJI[K]==x: return SUM[K],MUL[K] S=0 M=1 if MOJI[K-1]==x: return SUM[K-1],MUL[K-1] if MOJI[K-1]<x: nec=str((K+1)**2) S=SUM[K-1] M=MUL[K-1] x-=MOJI[K-1] if x<=len(nec): for i in range(x): if nec[i]=="0": S+=10 M*=10 else: S+=int(nec[i]) M*=int(nec[i]) M%=mod return S,M else: x-=len(nec) for i in range(len(nec)): if nec[i]=="0": S+=10 M*=10 else: S+=int(nec[i]) M*=int(nec[i]) M%=mod u,v=calc(K-1,x) return S+u,M*v%mod else: u,v=calc(K-1,x) return u,v a,b=calc(K,L-1) c,d=calc(K,R) print(c-a,d*pow(b,mod-2,mod)%mod)