// P5657 格雷码
#include<bits/stdc++.h>
using namespace std;
int n;
unsigned long long k;//无符号超长整形
string out_text(int n,unsigned long long k)//定义一个返回值为字符串类型的有参函数
{//递归边界
if(n==0) return ""; //位数为 0,直接返回空 当然,只会有一次特判,单反大于零,都将至少返回1或0
if(n==1 && k==0) return "0";
if(n==1 && k==1) return "1";
if(k<pow(2,n-1))
{
return "0"+out_text(n-1,k);
}
else if(k>=pow(2,n-1))
{
return "1"+out_text(n-1,pow(2,n)-k-1);
}
}
int main()
{
cin>>n>>k;
cout<<out_text(n,k)<<endl;
return 0;
}