#include<stdio.h>
int tot, a[10000]={0};
int chang(int n, int m, int s1, int s2, int s3)
{
int i, j;
if(n<m)
{
printf("no solution\n");
}
else if(s3 == n+m)
{
tot++;
printf("%d\n", tot);
for(i=0; i<s3; i++)
printf("%d", a[i]);
printf("\n");
}
else
{
if(s1>s2)
{
if(s1<n)
{
a[s3] = 50;
chang(n, m, s1+1, s2, s3+1);
}
if(s2<m)
{
a[s3] = 100;
chang(n, m, s1, s2+1, s3+1);
}
}
if(s1 == s2)
{
if(s1<n)
{
a[s3] = 50;
chang(n, m, s1+1, s2, s3+1);
}
}
}
}
int main()
{
int i, n, j, m;
while(scanf("%d%d", &n, &m)!=EOF && n!=0)
{
tot = 0;
chang(n, m, 0, 0, 0);
}
}
int tot, a[10000]={0};
int chang(int n, int m, int s1, int s2, int s3)
{
int i, j;
if(n<m)
{
printf("no solution\n");
}
else if(s3 == n+m)
{
tot++;
printf("%d\n", tot);
for(i=0; i<s3; i++)
printf("%d", a[i]);
printf("\n");
}
else
{
if(s1>s2)
{
if(s1<n)
{
a[s3] = 50;
chang(n, m, s1+1, s2, s3+1);
}
if(s2<m)
{
a[s3] = 100;
chang(n, m, s1, s2+1, s3+1);
}
}
if(s1 == s2)
{
if(s1<n)
{
a[s3] = 50;
chang(n, m, s1+1, s2, s3+1);
}
}
}
}
int main()
{
int i, n, j, m;
while(scanf("%d%d", &n, &m)!=EOF && n!=0)
{
tot = 0;
chang(n, m, 0, 0, 0);
}
}