#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
using namespace std;

typedef long long __int64;

__int64 comb[65][65];
int sm[]={-1,0};

string calc(int n, int l, __int64 r)
{
	string ret;
	if(n==0) return (l==0?"0":"1");
	
	if(comb[l][n] < r)
	{
		ret = calc(n-1, l-1, r-comb[l][n]);
		ret += "1";
	}
	else
	{
		ret = calc(n-1, l, r);
		ret += "0";
	}
	
	return ret;
}

int main()
{
	memset(comb,0,sizeof(comb));
	comb[0][0]=1;
	for(int i=1; i<=60; i++)
	for(int j=0; j<=i; j++)
	{
		__int64 sum=0;
		for(int k=0; k<2; k++)
		{
			int p=j+sm[k];
			if(p<0) continue;
			sum += comb[p][i-1];
		}
		
		comb[j][i]=sum;
	}
	
	int N;
	__int64 M;
	while(cin >> N >> M,(N||M))
	{
		__int64 sum=0;
		int R=0;
		for(;; R++)
		{
			if(sum + comb[R][N] >= M) 
			{
				M -= sum;
				break;
			}
			sum += comb[R][N];
		}
		
		string ans =calc(N-1,R,M);
		
		reverse(ans.begin(), ans.end());
		cout << ans << endl;
	}
}