def g(p, n): a = p b = 0 if n % 2 == 1: p = int(p / 10) while p != 0: d = p p = int(p / 10) b = b * 10 + d a = a * 10 return a + b def f(n): l = len(str(n)) h = int((l + 1) / 2) p = int(str(n)[0:h]) if g(p, l) > n: p = p - 1 p = p * 2 if l % 2 == 1: o = int(pow(10, h - 1)) p -= p - int(p / 2) + o - 1 else: o = int(pow(10, h)) p = p - int(p / 2) + o - 1 return p n = int(input()) x = f(n) print(x % 1000000000) print(x % 1000000007)