#include <bits/stdc++.h>
using namespace std;
char a[204800], b[204800], c[204800];
void canon(char *p, int len) {
  if (len & 1) return;
  len >>= 1;
  canon(p, len);
  canon(p + len, len);
  bool is_rev = false;
  for (int i = 0; i < len; i++)
    if (p[i] > p[i + len]) {
      is_rev = true;
      break;
    } else if (p[i] < p[i + len])
      break;
  if (is_rev) {
    char tmp;
    for (int i = 0; i < len; i++) {
      tmp = p[i];
      p[i] = p[i + len];
      p[i + len] = tmp;
    }
  }
}
int main() {
  scanf("%s%s", a, b);
  int len = strlen(a);
  canon(a, len);
  canon(b, len);
  if (strcmp(a, b) == 0)
    puts("YES");
  else
    puts("NO");
  return 0;
}
