#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;
}