import java.util.Scanner;

public class Main {
	/*
	a を b 回繰り返した文字列は a で始まり、b を a 回繰り返した文字列は b で始まるため、
	a < b ならば常に a を b 回繰り返した文字列の方が辞書順で小さいですし、
	a > b ならば常に b を a回繰り返した文字列の方が辞書順で小さいです。
	また、a = b なら二つの文字列が等しくなるのでどちらを出力しても同じになります
	*/
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String a = sc.next();
		String b = sc.next();
		sc.close();
		
		int A = Integer.parseInt(a);
		int B = Integer.parseInt(b);
		
		StringBuffer ans = new StringBuffer();
		if(A < B) {
			for(int i = 0; i < B; i++) {
					ans.append(A);
			}
		}else {
			for(int i = 0; i < A; i++) {
					ans.append(B);
			}
		}
		System.out.println(ans.toString());
	}
} import java.util.Scanner; Scanner java.util public class Main {
	/*
	a を b 回繰り返した文字列は a で始まり、b を a 回繰り返した文字列は b で始まるため、
	a < b ならば常に a を b 回繰り返した文字列の方が辞書順で小さいですし、
	a > b ならば常に b を a回繰り返した文字列の方が辞書順で小さいです。
	また、a = b なら二つの文字列が等しくなるのでどちらを出力しても同じになります
	*/
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String a = sc.next();
		String b = sc.next();
		sc.close();
		
		int A = Integer.parseInt(a);
		int B = Integer.parseInt(b);
		
		StringBuffer ans = new StringBuffer();
		if(A < B) {
			for(int i = 0; i < B; i++) {
					ans.append(A);
			}
		}else {
			for(int i = 0; i < A; i++) {
					ans.append(B);
			}
		}
		System.out.println(ans.toString());
	}
} Main /*
	a を b 回繰り返した文字列は a で始まり、b を a 回繰り返した文字列は b で始まるため、
	a < b ならば常に a を b 回繰り返した文字列の方が辞書順で小さいですし、
	a > b ならば常に b を a回繰り返した文字列の方が辞書順で小さいです。
	また、a = b なら二つの文字列が等しくなるのでどちらを出力しても同じになります
	*/
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String a = sc.next();
		String b = sc.next();
		sc.close();
		
		int A = Integer.parseInt(a);
		int B = Integer.parseInt(b);
		
		StringBuffer ans = new StringBuffer();
		if(A < B) {
			for(int i = 0; i < B; i++) {
					ans.append(A);
			}
		}else {
			for(int i = 0; i < A; i++) {
					ans.append(B);
			}
		}
		System.out.println(ans.toString());
	} main {
		Scanner sc = new Scanner(System.in);
		String a = sc.next();
		String b = sc.next();
		sc.close();
		
		int A = Integer.parseInt(a);
		int B = Integer.parseInt(b);
		
		StringBuffer ans = new StringBuffer();
		if(A < B) {
			for(int i = 0; i < B; i++) {
					ans.append(A);
			}
		}else {
			for(int i = 0; i < A; i++) {
					ans.append(B);
			}
		}
		System.out.println(ans.toString());
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) String a = sc.next(); a sc.next() sc.next sc String b = sc.next(); b sc.next() sc.next sc sc.close() sc.close sc int A = Integer.parseInt(a); A Integer.parseInt(a) Integer.parseInt Integer a int B = Integer.parseInt(b); B Integer.parseInt(b) Integer.parseInt Integer b StringBuffer ans = new StringBuffer(); ans new StringBuffer() if(A < B) {
			for(int i = 0; i < B; i++) {
					ans.append(A);
			}
		}else {
			for(int i = 0; i < A; i++) {
					ans.append(B);
			}
		} A < B A B {
			for(int i = 0; i < B; i++) {
					ans.append(A);
			}
		} for(int i = 0; i < B; i++) {
					ans.append(A);
			} int i = 0; int i = 0; i 0 i < B i B i++ i++ i {
					ans.append(A);
			} {
					ans.append(A);
			} ans.append(A) ans.append ans A {
			for(int i = 0; i < A; i++) {
					ans.append(B);
			}
		} for(int i = 0; i < A; i++) {
					ans.append(B);
			} int i = 0; int i = 0; i 0 i < A i A i++ i++ i {
					ans.append(B);
			} {
					ans.append(B);
			} ans.append(B) ans.append ans B System.out.println(ans.toString()) System.out.println System.out System System.out ans.toString() ans.toString ans String[] args args public class Main {
	/*
	a を b 回繰り返した文字列は a で始まり、b を a 回繰り返した文字列は b で始まるため、
	a < b ならば常に a を b 回繰り返した文字列の方が辞書順で小さいですし、
	a > b ならば常に b を a回繰り返した文字列の方が辞書順で小さいです。
	また、a = b なら二つの文字列が等しくなるのでどちらを出力しても同じになります
	*/
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String a = sc.next();
		String b = sc.next();
		sc.close();
		
		int A = Integer.parseInt(a);
		int B = Integer.parseInt(b);
		
		StringBuffer ans = new StringBuffer();
		if(A < B) {
			for(int i = 0; i < B; i++) {
					ans.append(A);
			}
		}else {
			for(int i = 0; i < A; i++) {
					ans.append(B);
			}
		}
		System.out.println(ans.toString());
	}
} public class Main {
	/*
	a を b 回繰り返した文字列は a で始まり、b を a 回繰り返した文字列は b で始まるため、
	a < b ならば常に a を b 回繰り返した文字列の方が辞書順で小さいですし、
	a > b ならば常に b を a回繰り返した文字列の方が辞書順で小さいです。
	また、a = b なら二つの文字列が等しくなるのでどちらを出力しても同じになります
	*/
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String a = sc.next();
		String b = sc.next();
		sc.close();
		
		int A = Integer.parseInt(a);
		int B = Integer.parseInt(b);
		
		StringBuffer ans = new StringBuffer();
		if(A < B) {
			for(int i = 0; i < B; i++) {
					ans.append(A);
			}
		}else {
			for(int i = 0; i < A; i++) {
					ans.append(B);
			}
		}
		System.out.println(ans.toString());
	}
} Main
import java.util.Scanner;

public class Main {
	/*
	a を b 回繰り返した文字列は a で始まり、b を a 回繰り返した文字列は b で始まるため、
	a < b ならば常に a を b 回繰り返した文字列の方が辞書順で小さいですし、
	a > b ならば常に b を a回繰り返した文字列の方が辞書順で小さいです。
	また、a = b なら二つの文字列が等しくなるのでどちらを出力しても同じになります
	*/
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String a = sc.next();
		String b = sc.next();
		sc.close();
		
		int A = Integer.parseInt(a);
		int B = Integer.parseInt(b);
		
		StringBuffer ans = new StringBuffer();
		if(A < B) {
			for(int i = 0; i < B; i++) {
					ans.append(A);
			}
		}else {
			for(int i = 0; i < A; i++) {
					ans.append(B);
			}
		}
		System.out.println(ans.toString());
	}
}