#include <bits/stdc++.h>
using namespace std;
char s1[200005], s2[200005];
int len;
bool flag;
bool check(int l1, int r1, int l2, int r2) {
  bool flag1 = true;
  for (int i = 0; i <= r1 - l1; ++i) {
    if (s1[l1 + i] != s2[l2 + i]) flag1 = false;
    if (!flag1) break;
  }
  if (flag1) return true;
  int l = r1 - l1 + 1;
  if (l % 2 == 1) return false;
  int mid1 = (l1 + r1) / 2, mid2 = (l2 + r2) / 2;
  if (check(l1, mid1, l2, mid2) && check(mid1 + 1, r1, mid2 + 1, r2))
    return true;
  if (check(l1, mid1, mid2 + 1, r2) && check(mid1 + 1, r1, l2, mid2))
    return true;
  return false;
}
int main() {
  scanf("%s", s1);
  scanf("%s", s2);
  len = strlen(s1);
  flag = check(0, len - 1, 0, len - 1);
  if (flag) {
    printf("YES\n");
  } else {
    printf("NO\n");
  }
  return 0;
}
