#include<bits/stdc++.h>
using namespace std;
#define ll long long
bool ms(string a,string b,ll s1,ll s2,ll e1,ll e2){
if(s1>e1 || s2>e2)
return false;
ll index=s2;
for(ll i=s1;i<=e1;i++){
if(a[i]!=b[index]){
index=-1;
break;
}
index++;
}
if(index!=-1)
return true;
if((e1-s1+1)%2==1 || (e2-s2+1)%2==1){
return false;
}
ll mid1=(s1+e1)/2;
ll mid2=(s2+e2)/2;
return (ms(a,b,s1,s2,mid1,mid2)&& ms(a,b,mid1+1,mid2+1,e1,e2))||(ms(a,b,s1,mid2+1,mid1,e2)&& ms(a,b,mid1+1,s2,e1,mid2));
}
bool solve(string a,string b,ll s1,ll s2,ll e1,ll e2){
ll mid=(s1+e1)/2;
return (ms(a,b,s1,s2,mid,mid)&& ms(a,b,mid+1,mid+1,e1,e2))||(ms(a,b,s1,mid+1,mid,e2)&& ms(a,b,mid+1,s2,e1,mid));
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
string a,b;
cin>>a>>b;
if(a==b)
cout<<"YES\n";
else{
ll l1=a.length();
ll l2=b.length();
if(l1!=l2){
cout<<"NO\n";
}
else{
if(l1%2==1)
cout<<"NO\n";
else if(solve(a,b,0,0,l1-1,l2-1)){
cout<<"YES\n";
}
else{
cout<<"NO\n";
}
}
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcKYm9vbCBtcyhzdHJpbmcgYSxzdHJpbmcgYixsbCBzMSxsbCBzMixsbCBlMSxsbCBlMil7CiAgICBpZihzMT5lMSB8fCBzMj5lMikKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgbGwgIGluZGV4PXMyOwogICAgZm9yKGxsIGk9czE7aTw9ZTE7aSsrKXsKICAgICAgICBpZihhW2ldIT1iW2luZGV4XSl7CiAgICAgICAgICAgIGluZGV4PS0xOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgaW5kZXgrKzsKICAgIH0KICAgIGlmKGluZGV4IT0tMSkKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIGlmKChlMS1zMSsxKSUyPT0xIHx8IChlMi1zMisxKSUyPT0xKXsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICBsbCBtaWQxPShzMStlMSkvMjsKICAgIGxsIG1pZDI9KHMyK2UyKS8yOwogICAgcmV0dXJuIChtcyhhLGIsczEsczIsbWlkMSxtaWQyKSYmIG1zKGEsYixtaWQxKzEsbWlkMisxLGUxLGUyKSl8fChtcyhhLGIsczEsbWlkMisxLG1pZDEsZTIpJiYgbXMoYSxiLG1pZDErMSxzMixlMSxtaWQyKSk7Cgp9CmJvb2wgc29sdmUoc3RyaW5nIGEsc3RyaW5nIGIsbGwgczEsbGwgczIsbGwgZTEsbGwgZTIpewogICAgbGwgIG1pZD0oczErZTEpLzI7CiAgICByZXR1cm4gKG1zKGEsYixzMSxzMixtaWQsbWlkKSYmIG1zKGEsYixtaWQrMSxtaWQrMSxlMSxlMikpfHwobXMoYSxiLHMxLG1pZCsxLG1pZCxlMikmJiBtcyhhLGIsbWlkKzEsczIsZTEsbWlkKSk7Cgp9CmludCBtYWluKCl7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CiAgICAgICAgc3RyaW5nIGEsYjsKICAgICAgICBjaW4+PmE+PmI7CiAgICAgICAgaWYoYT09YikKICAgICAgICAgICAgY291dDw8IllFU1xuIjsKICAgICAgICBlbHNlewogICAgICAgICAgICBsbCBsMT1hLmxlbmd0aCgpOwogICAgICAgICAgICBsbCBsMj1iLmxlbmd0aCgpOwogICAgICAgICAgICBpZihsMSE9bDIpewogICAgICAgICAgICAgICAgY291dDw8Ik5PXG4iOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2V7CiAgICAgICAgICAgICAgICBpZihsMSUyPT0xKQogICAgICAgICAgICAgICAgICAgIGNvdXQ8PCJOT1xuIjsKICAgICAgICAgICAgICAgIGVsc2UgaWYoc29sdmUoYSxiLDAsMCxsMS0xLGwyLTEpKXsKICAgICAgICAgICAgICAgICAgICBjb3V0PDwiWUVTXG4iOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgICAgICBjb3V0PDwiTk9cbiI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgcmV0dXJuIDA7Cn0K