#include<cstdio>
#define int unsigned long long
#define ri register int
int a[65];
int pow(int x)
{
ri ans=1;
while(x--) ans*=2;
return ans;
}
int GrayCode(int n,int k)
{
if(n==1&&k==1) return 0;
if(n==1&&k==2) return 1;
ri tmp=pow(n-1);
if(k<=tmp) return GrayCode(n-1,k);
else return GrayCode(n-1,2*tmp-k+1)+tmp;
}
signed main()
{
ri n,k;
scanf("%llu%llu",&n,&k);
ri ans=GrayCode(n,k+1),cnt=1;
while(ans)
{
a[cnt]=ans%2;
cnt++;
ans>>=1;
}
for(ri i=n;i>=1;--i) printf("%llu",a[i]);
return 0;
}