#include <bits/stdc++.h>
using namespace std;
bool equiv(string a, string b, int n) {
  if (a == b) return 1;
  if (n % 2) return 0;
  return ((equiv(a.substr(0, n / 2), b.substr(n / 2, n / 2), n / 2) &&
           equiv(a.substr(n / 2, n / 2), b.substr(0, n / 2), n / 2)) ||
          (equiv(a.substr(0, n / 2), b.substr(0, n / 2), n / 2) &&
           equiv(a.substr(n / 2, n / 2), b.substr(n / 2, n / 2), n / 2)));
}
int main() {
  string a, b;
  cin >> a >> b;
  if (a.length() == b.length() && equiv(a, b, a.length()))
    printf("YES");
  else
    printf("NO");
  return 0;
}
