#include<iostream>
int n,m;
int a[10]={0};
int num;
int q=0;
int sum=0;
int b[10]={0};
void jisuan()
{
	for(int i=0;i<q-1;i++)
	{
		if(a[i]==1)
		{
			sum=sum*10+b[i];
		}
		if(a[i]==0)
		{


		}

	}



}
void dfs(int step)
{  
	if(step==(q-1))
	{
		for(int i=0;i<(q-1);i++)
			printf("%d",a[i]);
		printf("\n");
		jisuan();
       return;
	}
	for(int i=0;i<2;i++)
	{
		 a[step]=i;
		 dfs(step+1);
	}
}
void cunshu(int i)
{   
	 int k=i;
	for(int j=0;j<10;j++)
	{
		b[j]=i%10;
		i=i/10;
	}
	while(k)
	{
		k=k/10;
		q++;
	}
}
int main()
{    
	freopen("input.txt","r",stdin);
	scanf("%d%d",&n,&m);
		/*if(n==0&&m==0)
			break;*/
		   cunshu(m);
			printf("%d\n",q);
		for(int i=0;i<q;i++)
		{
			printf("%d ",b[i]);
		}
		  dfs(0);



	



}