B. Эквивалентные строки
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Сегодня на спецкурсе «Строки» Геральд узнал новое определение эквивалентности строк. Две строки a и b равной длины называются эквивалентными в одном из двух случаев:

  1. Они равны.
  2. Если разделить строку a на две одинаковые по длине половины a1 и a2, а строку b — на две одинаковые по длине половины b1 и b2, то окажется, что верно одно из двух:
    1. a1 эквивалентно b1, а a2 эквивалентно b2
    2. a1 эквивалентно b2, а a2 эквивалентно b1

В качестве домашнего задания преподаватель выдал ученикам две строки и попросил определить, эквиваленты ли они.

Геральд уже сделал это домашнее задание. Сделайте и вы!

Входные данные

В первых двух строках входных данных даны две строки, которые выдал преподаватель. Каждая из них имеет длину от 1 до 200 000 и состоит из строчных букв английского алфавита. Строки имеют одинаковую длину.

Выходные данные

Выведите «YES» (без кавычек), если эти две строки эквивалентны, и «NO» (без кавычек) в противном случае.

Примеры
Входные данные
aaba
abaa
Выходные данные
YES
Входные данные
aabb
abab
Выходные данные
NO
Примечание

В первом примере первую строку можно разделить на строки "aa" и "ba", вторую – на строки "ab" и "aa". "aa" эквивалентно "aa"; "ab" эквивалентно "ba", так как "ab" = "a" + "b", "ba" = "b" + "a".

Во втором примере первую строку можно разделить на строки "aa" и "bb", которые эквивалентны только сами себе. Поэтому строка "aabb" эквивалентна только сама себе и строке "bbaa".