#include <bits/stdc++.h>
using namespace std;
string s1, s2;
bool checker(long long int l1, long long int r1, long long int l2,
             long long int r2) {
  while (l1 <= r1 && l2 <= r2) {
    if (s1[l1] != s2[l2]) return false;
    l1++;
    l2++;
  }
  return true;
}
bool fun(long long int l1, long long int r1, long long int l2,
         long long int r2) {
  if (checker(l1, r1, l2, r2)) return true;
  if ((r1 - l1 + 1) & 2 != 0) return false;
  long long int mid1 = (l1 + r1 - 1) / 2;
  long long int mid2 = (l2 + r2 - 1) / 2;
  if (fun(l1, mid1, mid2 + 1, r2) && fun(mid1 + 1, r1, l2, mid2)) return true;
  if (fun(l1, mid1, l2, mid2) && fun(mid1 + 1, r1, mid2 + 1, r2)) return true;
  return false;
}
void code() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  ;
  cin >> s1 >> s2;
  long long int n = s1.size();
  if (fun(0, n - 1, 0, n - 1)) {
    cout << "YES";
  } else
    cout << "NO";
  return;
}
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  ;
  long long int tc = 1;
  while (tc--) {
    code();
  }
  return 0;
}
