#include <bits/stdc++.h>
using namespace std;
long long max(long long a, long long b) {
  if (a > b)
    return a;
  else
    return b;
}
long long min(long long a, long long b) {
  if (a < b)
    return a;
  else
    return b;
}
long long power(long long B, long long P) {
  if (P == 0) return 1;
  long long X = power(B, P / 2);
  if (P % 2 == 0)
    return X * X;
  else
    return B * X * X;
}
long long fx4[] = {1, -1, 0, 0};
long long fy4[] = {0, 0, 1, -1};
string F(string S) {
  int len = S.size();
  if (len % 2) return S;
  string s1 = F(S.substr(0, len / 2));
  string s2 = F(S.substr(len / 2, len));
  if (s1 > s2) return s2 + s1;
  return s1 + s2;
}
int main() {
  long long T, N, M, X, Y, W;
  string S1, S2;
  cin >> S1 >> S2;
  string a = F(S1);
  string b = F(S2);
  if (a != b)
    cout << "NO" << endl;
  else
    cout << "YES" << endl;
  return 0;
}
