#include <bits/stdc++.h>
const int gig = 2e18;
const int gg = 25 * 1e6;
const int md = 1e9 + 7;
const int N = 100050;
const int DOS = 1e6;
const double PI = 3.1415926535897932384626433832795;
const int MAXN = 2e5;
using namespace std;
string get(string s) {
  if (s.size() % 2 == 1) return s;
  string o1, o2;
  for (int i = 0; i < s.size() / 2; i++) o1 += s[i];
  for (int i = s.size() / 2; i < s.size(); i++) o2 += s[i];
  o1 = get(o1);
  o2 = get(o2);
  if (o1 > o2)
    return o1 + o2;
  else
    return o2 + o1;
}
int main() {
  srand(time(NULL));
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  string s1, s2;
  cin >> s1 >> s2;
  s1 = get(s1);
  s2 = get(s2);
  if (s1 == s2)
    cout << "YES";
  else
    cout << "NO";
}
