You are given strings s and t, consisting of lowercase English letters. You will create a string s' by freely rearranging the characters in s. You will also create a string t' by freely rearranging the characters in t. Determine whether it is possible to satisfy s' < t' for the lexicographic order.

Constraints

* The lengths of s and t are between 1 and 100 (inclusive).
* s and t consists of lowercase English letters.

Input

Input is given from Standard Input in the following format:


s
t


Output

If it is possible to satisfy s' < t', print `Yes`; if it is not, print `No`.

Examples

Input

yx
axy


Output

Yes


Input

ratcode
atlas


Output

Yes


Input

cd
abc


Output

No


Input

w
ww


Output

Yes


Input

zzz
zzz


Output

No
import java.util.Arrays;
import java.util.Scanner;
public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		String s = sc.next();

		String t = sc.next();

		char[] ss = new char[s.length()];

		char[] tt = new char[t.length()];

		for(int i=0;i<s.length();i++) {

			ss[i]= s.charAt(i);
		}

		for(int i=0;i<t.length();i++) {

			tt[i]= t.charAt(i);
		}

		Arrays.sort(ss);

		Arrays.sort(tt);

		boolean ans = false;

		boolean flag = false;

		int len = Math.min(s.length(), t.length());

		for(int i=0;i<len;i++) {

			if(ss[i]<tt[tt.length-1-i]) {

				ans = true;

				break;
			}

			if(ss[i]!=tt[tt.length-1-i]) flag = true;

			if(i==len-1 && ss.length>tt.length) ans = false;
		}

		if(!flag && ss.length<tt.length) ans = true;

		if(s.equals(t)) ans = false;

		if(ans)System.out.println("Yes");

		else System.out.println("No");
	}

}
