#include <stdio.h>


typedef struct{
	int index;
	int s;
}STACK_T;


int main()
{
	char c;
	char figure[20000];
	int stack[20000];
	STACK_T stack2[20000];
	int sp, sp2;
	int index;
	int count, sum;
	int i;


	// データを入力
	i = count = 0;
	while( (c = fgetc(stdin)) != '\n'){
		figure[i++] = c;
		count++;
	}


	// 面積の計算
	sp = sp2 = sum = 0;
	for(i = 0; i < count; i++){
		// スタックに積んでいく
		if(figure[i] == '\\')
			stack[sp++] = i;
		// スタックから取り出す&面積の計算
		else if(figure[i] == '/' && sp >= 1){
			index = stack2[sp2].index = stack[--sp];
			sum += stack2[sp2].s = i - stack[sp];
			// 結合
			while(sp2 >= 1 && index < stack2[sp2 - 1].index){
				stack2[--sp2].index = index;
				stack2[sp2].s += stack2[sp2 + 1].s;
			}
			sp2++;
		}
	}


	// 表示
	printf("%d\n", sum);
	printf("%d", sp2);
	for(i = 0; i < sp2; i++){
		if(i == 0)
			printf(" ");
		printf("%d", stack2[i].s);
		if(i != sp2 - 1)
			printf(" ");
	}
	printf("\n");

	return 0;
}
