#include<stdio.h>
#include<string.h>
int main()
{
//输入读取这个二进制字符串
char s[100001];
scanf("%s",s);
int len = strlen(s);
int g = 0; // 结果数组下标(记录已转换数字个数)
int count = 1;//记录每次位数的多少
int a = 0; //子串起始索引
int c[100001];//储存输出后的十进制数
//只要满足
while(a+ count <= len)
{
int sum = 0;
int cur_len = count;
//遍历读取当前的位数二进制数字
for(int i=0;i < cur_len;i++)
{
sum = sum*2 + (s[a+i] - '0');
}
count++;
c[g++] = sum;
if (count == 11) count = 1;
a += cur_len; // 下一个子串的起始位置(当前子串占current_len长度)
}
// 输出结果
printf("%d\n", g);
for (int k = 0; k < g; k++) {
printf("%d ", c[k]);
}
return 0;
}