import sys input = lambda : sys.stdin.readline().rstrip() write = lambda x: sys.stdout.write(x+"\n") debug = lambda x: sys.stderr.write(x+"\n") writef = lambda x: print("{:.12f}".format(x)) k,l,r = list(map(int, input().split())) M = 10**9+7 def _sub(t): t = int(t) if t==0: t = 10 return t def sub(l): if l==0: return 0, 1 ss = [1] ll = [1] pp = [1] v = 2 while 1: tmp = str(v*v) if len(tmp)+ss[-1]>=l: l0 = ll[-1] p0 = pp[-1] for i in range(l-ss[-1]): l0 += _sub(tmp[i]) p0 *= _sub(tmp[i]) p0 %= M return l0,p0 ns = ss[-1]*2 + len(tmp) if ns>l: ll[-1] += sum((_sub(t) for t in tmp)) p = 1 for t in tmp: p *= _sub(t) p %= M pp[-1] *= p pp[-1] %= M l0,p0 = sub(l-ss[-1]-len(tmp)) return l0+ll[-1], p0*pp[-1]%M ss.append(ns) ll.append(ll[-1]*2 + sum((_sub(t) for t in tmp))) p = 1 for t in tmp: p *= _sub(t) p %= M pp.append(pp[-1]**2 % M * p) v += 1 if v>k: return None, None l0,p0 = sub(l-1) l1,p1 = sub(r) if l0 is None or l1 is None: print(-1) else: print(l1-l0, p1*pow(p0, M-2, M)%M)