#include<stdio.h>
#include<string.h>
#define N 20000

typedef struct {
    int map;
	int eq;
}area;

int s1[N];
area s2[N];
int top1=0, top2=0;

void push1(int x);
int pop1();
void push2(int x, int add);
area pop2();

int main(void){
	char a[N];
	int j, i, n, add=0;
	int sum=0;//全合計
	
	scanf(" %s", a);
	
	n=strlen(a);
	
	for(i=0; i<n; i++){
		if(a[i]=='\\') {
			push1(i);//i入れる
		}
		else if(a[i]=='/' && 0<top1) {
			j=pop1();//終わり
			add=i-j;//今-相当するとこ
			sum+=add;
			while(j < s2[top2-1].map && 0<top2){
				add+= pop2().eq;
			}
			push2(j, add);
		}
	}
	
    printf("%d\n", sum);
	printf("%d", top2);
	for(i=0 ; i<top2 ; i++){
		printf(" %d", s2[i].eq);
	}
	printf("\n");
	return 0;
}



void push1(int x){
    s1[top1]=x;
    top1++;
}

int pop1(){
    top1--;
    return s1[top1];
}

/*個々*/
void push2(int x, int add){
    s2[top2].map = x;
    s2[top2].eq = add;
    top2++;
}

area pop2(){
    top2--;
    return s2[top2];
}

