#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
using namespace std;
int main()
{
int n,m;
while(cin>>n>>m)
{
//将二进制数存储为字符串形式
string a,b;
for(int i=0;i<16;i++)
{
a+=to_string(n>>i&1); //将得到的第i位二进制数转化为字符串形式然后加到存储该完整二进制数的字符串a的后面去
b+=to_string(m>>i&1);
}
a+=a;//伸展a前后重复两遍
if(a.find(b)!=-1) cout<<"YES"<<endl; //看伸展后的a中是否含有b,若找到(a.find(b)!=1)则代表原本a字符串可以通过循环移位得到b字符串
else cout<<"NO"<<endl;
}
return 0;
}