Little X has met the following problem recently. 

Let's define f(x) as the sum of digits in decimal representation of number x (for example, f(1234) = 1 + 2 + 3 + 4). You are to calculate <image>

Of course Little X has solved this problem quickly, has locked it, and then has tried to hack others. He has seen the following C++ code: 
    
    
      
        ans = solve(l, r) % a;  
        if (ans <= 0)  
          ans += a;  
      
    

This code will fail only on the test with <image>. You are given number a, help Little X to find a proper test for hack.

Input

The first line contains a single integer a (1 ≤ a ≤ 1018).

Output

Print two integers: l, r (1 ≤ l ≤ r < 10200) — the required test data. Leading zeros aren't allowed. It's guaranteed that the solution exists.

Examples

Input

46


Output

1 10


Input

126444381000032


Output

2333333 2333333333333
#!/usr/bin/env python

import random


def read():
    return input()


def g(n):
    strNum = str(n)

    ret = 0
    for idx in range(len(strNum)):
        digit = int(strNum[idx])
        
        leftNum     = int(strNum[:idx]    ) if idx > 0 else 0
        rightNum    = int(strNum[idx + 1:]) if idx + 1 < len(strNum) else 0
        rightDigits = len(strNum) - idx - 1
            
        # i < digit:
        ret += (digit * (digit - 1) / 2)              * (leftNum  + 1) * (10 ** rightDigits)

        # i > digit:
        ret += (9 * 10 / 2 - digit * (digit + 1) / 2) * (leftNum     ) * (10 ** rightDigits)
                
        # i == digit:
        ret += digit * (leftNum     ) * (10 ** rightDigits)
        ret += digit * (rightNum + 1)

    return ret


def work(a):
    mul = 1
    while mul:
        L = 0
        R = mul * a
        while L < R:
            mid = (L + R) / 2

            if g(mid) >= mul * a:
                R = mid
            else:
                L = mid + 1
        
        if g(L) == mul * a:
            print 1, L
            break

        mul += 1
    

if __name__ == "__main__":
    work(read())
