Problem:
Score : 300 points

Problem Statement

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.

Sample Input 1

azzel
apple

Sample Output 1

Yes

azzel can be changed to apple, as follows:

Choose e as c_1 and l as c_2. azzel becomes azzle.

Choose z as c_1 and p as c_2. azzle becomes apple.

Sample Input 2

chokudai
redcoder

Sample Output 2

No

No sequences of operation can change chokudai to redcoder.

Sample Input 3

abcdefghijklmnopqrstuvwxyz
ibyhqfrekavclxjstdwgpzmonu

Sample Output 3

Yes

Solution in PHP7 (7.0.15) (judge verdict: Time Limit Exceeded)

<?php /*atcoder.php*/

$at = new Atcoder();
$at->main();
unset($at);

class Atcoder{
	private function lineIn(){
		$buf = fgets(STDIN);
		return $this->killNewLine($buf);
	}
	private function killNewLine($buf = null){
		$buf = str_replace("\r\n", "", $buf);
		$buf = str_replace("\n", "", $buf);
		$buf = str_replace("\r", "", $buf);
		return $buf;
	}

	public function main(){
		$s = $this->lineIn();
		$t = $this->lineIn();
	
		if($s === $t){
			echo "Yes\n";
			return true;
		}

		$sbuf = str_split($s);
		$tbuf = str_split($t);

		sort($sbuf);
		sort($tbuf);

		$max = count($sbuf);

		$st = 0;
		for($i = 0; $i < $max; $i++){
			if($sbuf[$i] == $tbuf[$i]){
				continue;
			}else{
				$sbuf = str_replace($sbuf[$i], $tbuf[$i], $sbuf);
				$i = 0;
				$st++;
				if($st > 1000000){
					echo "No\n";
					return false;
				}
			}
		}
		echo "Yes\n";
		return true;
	}
}
?>