AT_code_formula_2014_qualB_c 仲良し文字列

Description

[problemUrl]: https://atcoder.jp/contests/code-formula-2014-qualb/tasks/code_formula_2014_qualB_c (21:13 追記) |A|=|B|=1のケースがテスト中に一つ含まれていましたので、リジャッジを行います。なお、このケースで`NO`を出力するプログラムに影響はありません。 文字列 $ A $ の文字をちょうど $ 3 $ 回スワップすることにより、文字列 $ B $ に変換できるとき、二つの文字列 $ A $, $ B $ を、仲良し文字列と呼ぶことにします。 スワップとは、文字列に含まれる $ 2 $ つの文字を、入れ替えることを指します。 例えば、`abc`という文字列であれば、`a`と`c`を入れ替えて、`cba`のように変換することが出来ます。 `aa`のような文字列に対し、 $ 1 $ 文字目の`a`と、 $ 2 $ 文字目の`a`を入れ替えることは許されていますが、同じ場所の文字を指定することはできません。 文字列 $ A $, $ B $ が与えられるので、仲良し文字列になっているかどうかを判定しなさい。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ A $ $ B $ - $ 1 $ 行目には、文字列 $ A\ (2\ ≦\ |A|≦\ 1000) $ が与えられる。 - $ 2 $ 行目には、文字列 $ B\ (|B|\ =\ |A|) $ が与えられる。 - $ A $, $ B $ 共に、小文字アルファベットのみで構成されていることが保障されている。

Output Format

与えられた $ 2 $ つの文字列が、仲良し文字列であれば`YES`、そうでなければ`NO`を出力せよ。 出力の末尾には改行をいれること。

Explanation/Hint

### Sample Explanation 1 まず、文字列 $ A $ の`abcdef`の`a`と`f`をスワップし、`fbcdea`とします。 次に、`b`と`e`をスワップし、`fecdba`とします。 最後に、`c`と`d`をスワップし、`fedcba`とすると、文字列 $ B $ と一致します。 よって、この $ 2 $ つの文字列は、仲良し文字列となるため、`YES`と出力します。 ### Sample Explanation 2 使っている文字数が同じでも、 $ 3 $ 回のスワップでは同じ文字列にできないパターンも存在します。 ### Sample Explanation 3 スワップの仕方が $ 1 $ 通りしかなく、 $ 3 $ 回のスワップを繰り返すと、`tn`になってしまいます。 よって、同じ $ 2 $ つの文字列ですが、仲良し文字列ではありません。 ### Sample Explanation 4 まず、 $ 1 $ 番目の文字と $ 2 $ 番目の文字を入れ替え、`qpqq`とします。 次に、 $ 3 $ 番目の文字と $ 4 $ 番目の文字を入れ替え、`qpqq`とします。この際、同じ文字を選んでいますが、場所が違うので問題ありません。 最後に、$ 1 $番目の文字と、$ 2 $番目の文字を入れ替え、`pqqq`とします。 ### Sample Explanation 5 長い文字列が与えらえれることがあることにも注意してください。