The preferred way to generate user login in Polygon is to concatenate a prefix of the user's first name and a prefix of their last name, in that order. Each prefix must be non-empty, and any of the prefixes can be the full name. Typically there are multiple possible logins for each person.

You are given the first and the last name of a user. Return the alphabetically earliest login they can get (regardless of other potential Polygon users).

As a reminder, a prefix of a string s is its substring which occurs at the beginning of s: "a", "ab", "abc" etc. are prefixes of string "{abcdef}" but "b" and 'bc" are not. A string a is alphabetically earlier than a string b, if a is a prefix of b, or a and b coincide up to some position, and then a has a letter that is alphabetically earlier than the corresponding letter in b: "a" and "ab" are alphabetically earlier than "ac" but "b" and "ba" are alphabetically later than "ac".

Input

The input consists of a single line containing two space-separated strings: the first and the last names. Each character of each string is a lowercase English letter. The length of each string is between 1 and 10, inclusive. 

Output

Output a single string — alphabetically earliest possible login formed from these names. The output should be given in lowercase as well.

Examples

Input

harry potter


Output

hap


Input

tom riddle


Output

tomr
import java.util.*;
public class problem{
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String fn = scan.next();
		String ln = scan.next();
	//	if (fn.equals(z)  && )
		int l1 = fn.length(),l2 = ln.length();
		String st1 = new String();
		String min = "zzzzzzzzzzz";
		for(int i = 0;i<l1;i++)
		{
			st1+=fn.charAt(i);
			//st1.append(fn.charAt(i));
			String st2 = new String();
			for(int j = 0;j<l2;j++)
			{
				st2+=ln.charAt(j);
				String a = st1+st2;
				if (min.compareTo(a) > 0)
					min = a;
			}
		}
		System.out.println(min);
	}

}