Problem: Let s(x) be sum of digits in decimal representation of positive integer x. Given two integers n and m, find some positive integers a and b such that 

  * s(a) ≥ n, 
  * s(b) ≥ n, 
  * s(a + b) ≤ m. 

Input

The only line of input contain two integers n and m (1 ≤ n, m ≤ 1129).

Output

Print two lines, one for decimal representation of a and one for decimal representation of b. Both numbers must not contain leading zeros and must have length no more than 2230.

Examples

Input

6 5


Output

6 
7


Input

8 16


Output

35 
53

Note

In the first sample, we have n = 6 and m = 5. One valid solution is a = 6, b = 7. Indeed, we have s(a) = 6 ≥ n and s(b) = 7 ≥ n, and also s(a + b) = s(13) = 4 ≤ m.

Solution (in JAVA):

Solution:
import java.util.*;

public class aim_2 extends Template{
	public static void main(String[] args) {
		int n = nI(), m = nI();
		int leftA = n, leftB = n;
		String numA = ""; String numB = "";
		leftA -= 9; leftB -= 1;
		while(leftA>=0||leftB>=0){
			if(leftA>=leftB){
				numA += 9;
				if(!numB.equals("")) numB += 0;
				leftA -= 9;
			}
			else if(leftB>leftA){
				numB += 9;// numB += 9;
				if(!numA.equals(""))numA += 0;
				leftB -=9;
			}
		}
		//numA *= 10; 
		numA += 9;
		//numB *= 10; 
		numB += 1;
		System.out.println(numA);
		System.out.println(numB);
	}	
}

class Template{
	static Scanner s = new Scanner(System.in);
	final static int nI(){return s.nextInt();}
	final static long nL(){return s.nextLong();}
	final static String nS(){return s.nextLine();}
	/* Renaming of some generic utility classes */
	final static class mylist extends ArrayList<pair>{}
	/* Constants Section */
	final static int INT_MIN = Integer.MIN_VALUE ; final static int INT_MAX = Integer.MAX_VALUE ;
	final static long LONG_MIN = Long.MIN_VALUE ; final static long LONG_MAX = Long.MAX_VALUE ;
	static long MOD = 1000000007 ;
	static void p(){System.out.println();}
	static void pn(long a){System.out.println(a);}
	static void pn(mylist a){System.out.println(a);}
	static void p(long a){System.out.printf("%d ", a);}
	static void p(long a, long b){System.out.printf("%d %d\n", a, b);}
	static void p(long a, long b, long c){System.out.printf("%d %d %d\n", a, b, c);}
	/* Implementation of operations modulo MOD */
	static long inv(long a){ return powM(a,MOD-2) ; }
	static long m(long a,long b){ return (a*b)%MOD ; }
	static long d(long a,long b){ return (a*inv(b))%MOD ; }
	static long powM(long a,long b){
		if(b<0) return powM(inv(a),-b) ;
		long ans=1 ;
		for( ; b!=0 ; a=(a*a)%MOD , b/=2) if((b&1)==1) ans = (ans*a)%MOD ;
		return ans ;
	}
}
class pair implements Comparable<pair>{
	long x ; long y ;
	pair(long _x,long _y){ x=_x ; y=_y ;} 
	public int compareTo(pair p){
		return (this.x<p.x ? -1 : (this.x>p.x ? 1 : (this.y<p.y ? -1 : (this.y>p.y ? 1 : 0)))) ;
	}
	public String toString(){ return "(" + x + " " + y+ ")";}
}