#include <bits/stdc++.h>
using namespace std;
bool equivalent(const string &str1, const string &str2) {
  if (str1.length() % 2) return str1 == str2;
  int mid = str1.length();
  if (mid == 1) return str1 == str2;
  mid /= 2;
  string sub1_str1 = string(str1.begin(), str1.begin() + mid);
  string sub2_str1 = string(str1.begin() + mid, str1.end());
  string sub1_str2 = string(str2.begin(), str2.begin() + mid);
  string sub2_str2 = string(str2.begin() + mid, str2.end());
  return (equivalent(sub1_str1, sub1_str2) &&
          equivalent(sub2_str1, sub2_str2)) ||
         (equivalent(sub1_str1, sub2_str2) && equivalent(sub1_str2, sub2_str1));
}
int main() {
  string str1, str2;
  cin >> str1 >> str2;
  if (equivalent(str1, str2))
    cout << "YES" << endl;
  else
    cout << "NO" << endl;
}
