Problem: Let's call a positive integer composite if it has at least one divisor other than 1 and itself. For example:

  * the following numbers are composite: 1024, 4, 6, 9; 
  * the following numbers are not composite: 13, 1, 2, 3, 37. 



You are given a positive integer n. Find two composite integers a,b such that a-b=n.

It can be proven that solution always exists.

Input

The input contains one integer n (1 ≤ n ≤ 10^7): the given integer.

Output

Print two composite integers a,b (2 ≤ a, b ≤ 10^9, a-b=n).

It can be proven, that solution always exists.

If there are several possible solutions, you can print any. 

Examples

Input


1


Output


9 8


Input


512


Output


4608 4096

Solution (in JAVA):

Solution:
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * @author Rohini Chandra
 */
import java.util.*;
import java.io.*;
public class DP_3{
    public static void main(String args[]) throws IOException{
       /*BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
       PrintWriter pw = new PrintWriter(System.out);*/
       //List<Integer> list = new ArrayList<>();
       //Map<Integer,Integer> map = new HashMap<>();
       //Set<Integer> set = new HashSet<>();
     Scanner sc = new Scanner(System.in);
     long n = sc.nextInt();
     long a,b;
     a = 3*n;
     b = 2*n;
     if(n==1)
        System.out.println("9 8");
     else
        System.out.println(a+" "+b); 
    } 
                                       //******** PRINT ********//
    static void prt(int a){
       System.out.print(a);
    }
                                       //******** PRINTLN ********//
    static void prtl(int b){
       System.out.println(b); 
    }         
                                       //******** FACTORIAL ********//
    static int fact(int n){
       if(n==1)
          return 1;
       else
          return n*fact(n-1);
    }
                                       //******** OCCURRENCE ********//
    static Map<String,Integer> ocr(String str[]){
           Map<String,Integer> map = new HashMap<>();
           for(int i=0; i<str.length; i++){
           if(!map.containsKey(str[i]))
              map.put(str[i], 1);
           else
              map.put(str[i], map.get(str[i])+1);
           }
           return map;
    }
                                        //******** PRIME OR NOT ********//
    static boolean isprime(long num){
        if(num<=1)
            return false;
        else if(num<=3)
            return true;
        else if(num%2==0 || num%3==0)
            return false;
        else{
            for(int i=5; i*i<=num; i+=6){
                if(num%i==0 || num%(i+2)==0)
                   return false; 
            }
            return true;
        }
    }
                                       //******** GCD ************//
    static long gcd(long a, long b){
         if(b==0)
            return a;
         else if(a==0)
            return b;  
         else if(a>b)
            gcd(a%b,b);
         else if(a<b)
            gcd(a,b%a);
         else if(a==b)
            return a;
         return 0;
    }
}