#include <bits/stdc++.h>
int equivS(char *X, char *Y, int n) {
  if (!strncmp(X, Y, n))
    return 1;
  else if (n % 2)
    return 0;
  else if (equivS(X, Y + n / 2, n / 2) && equivS(X + n / 2, Y, n / 2))
    return 1;
  else if (equivS(X, Y, n / 2) && equivS(X + n / 2, Y + n / 2, n / 2))
    return 1;
  else
    return 0;
}
int main() {
  char X[200001], Y[200001];
  scanf("%s %s", X, Y);
  if (equivS(X, Y, strlen(X)))
    printf("YES\n");
  else
    printf("NO\n");
  return 0;
}
