#include <bits/stdc++.h>
using namespace std;
long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }
long long powM(long long x, long long y, long long m) {
  if (y == 0) return 1;
  long long p = powM(x, y / 2, m) % m;
  p = (p * p) % m;
  return (y % 2 == 0) ? p : (x * p) % m;
}
bool rec(string s, string t) {
  int n = (int)s.length();
  if (n % 2 == 1) {
    if (s == t)
      return true;
    else
      return false;
  } else {
    if (s == t) return true;
    bool chk1 = rec(s.substr(0, n / 2), t.substr(n / 2)) &&
                rec(s.substr(n / 2), t.substr(0, n / 2));
    if (chk1 == true) return true;
    bool chk2 = rec(s.substr(0, n / 2), t.substr(0, n / 2)) &&
                rec(s.substr(n / 2), t.substr(n / 2));
    if (chk2 == true)
      return true;
    else
      return false;
  }
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  string s, t;
  cin >> s >> t;
  bool ans = rec(s, t);
  if (ans)
    cout << "YES" << '\n';
  else
    cout << "NO" << '\n';
  return 0;
}
