You are given strings S and T consisting of lowercase English letters.

You can perform the following operation on S any number of times:

Operation: Choose two distinct lowercase English letters c_1 and c_2, then replace every occurrence of c_1 with c_2, and every occurrence of c_2 with c_1.

Determine if S and T can be made equal by performing the operation zero or more times.

Constraints

* 1 \leq |S| \leq 2 \times 10^5
* |S| = |T|
* S and T consists of lowercase English letters.

Input

Input is given from Standard Input in the following format:


S
T


Output

If S and T can be made equal, print `Yes`; otherwise, print `No`.

Examples

Input

azzel
apple


Output

Yes


Input

chokudai
redcoder


Output

No


Input

abcdefghijklmnopqrstuvwxyz
ibyhqfrekavclxjstdwgpzmonu


Output

Yes
import java.util.*;
import java.io.*;

class Main {
  public static void main(String[] args) throws Exception{
    try (Scanner sc = new Scanner(System.in)){
      String S = sc.next();
      String T = sc.next();
      HashMap<Character, Integer> hm = new HashMap<Character, Integer>();
      for (int i = 0; i < S.length(); i++) {
        if (hm.containsKey(S.charAt(i))) {
          hm.put(S.charAt(i), hm.get(S.charAt(i)) + 1);
        } else {
          hm.put(S.charAt(i), 1);
        }
      }
      HashMap<Character, Integer> hm2 = new HashMap<Character, Integer>();
      for (int i = 0; i < T.length(); i++) {
        if (hm2.containsKey(T.charAt(i))) {
          hm2.put(T.charAt(i), hm2.get(T.charAt(i)) + 1);
        } else {
          hm2.put(T.charAt(i), 1);
        }
      }
      int[] arr1 = new int[hm.size()];
      int[] arr2 = new int[hm2.size()];
      int i = 0;
      for (Integer var : hm.values()) {
        arr1[i] = (int)var;
        i++;
      }
      i = 0;
      for (Integer var : hm2.values()) {
        arr2[i] = (int)var;
        i++;
      }
      Arrays.sort(arr1);
      Arrays.sort(arr2);
      //System.out.println(Arrays.toString(arr2));
      if (arr1.length != arr2.length) {
        System.out.println("No");
        return;
      } else {
        for (int j = 0; j < arr1.length; j++) {
          if (arr1[j] != arr2[j]) {
            System.out.println("No");
            return;
          }
        }
        System.out.println("Yes");
      }
    }
  }
}
