#include <bits/stdc++.h>
using namespace std;
int cf313df(const char *a, const char *b, int ln) {
  for (int i = 0; i < ln; i++) {
    if (a[i] != b[i]) goto ff;
  }
  return 1;
ff:
  if (ln & 1) return 0;
  ln >>= 1;
  int f = (cf313df(a, b, ln) && cf313df(a + ln, b + ln, ln));
  int ff;
  if (!f) ff = (cf313df(a, b + ln, ln) && cf313df(a + ln, b, ln));
  return f | ff;
}
int main() {
  char a[200001], b[200001];
  scanf("%s%s", a, b);
  int ln = strlen(a);
  if (cf313df(a, b, ln))
    printf("YES\n");
  else
    printf("NO\n");
  return 0;
}
