#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef struct{
	int startarea;
	int allarea;
}Area;

void S1push(int);
int S1pop();
void S2push(int,int);
Area S2pop();
void anspush(int);

int top1,top2,top3,S1[20000],ans[20000];
Area S2[20000];

int main(void){
	
	char ch[20001];
	int sum=0,i=0,b;
	Area c;
	top1=0;
	top2=0;
	top3=0;
	
	scanf("%s",ch);
	
	for(i=0;ch[i]!='\0';i++){
		if(ch[i]=='\\'){
			S1push(i);
		}
		else if(ch[i]=='/' && top1>0){
			int j=S1[top1];
			b=S1pop();
			sum+=i-j;
			int a=i-j;
			while(top2>0 && S2[top2].startarea>j){
				a+=S2[top2].allarea;
				c=S2pop();
			}
			S2push(j,a);
		}
	}
	int another_ans[20000];
	
	while(top2>0){
		anspush(S2[top2].allarea);
		c=S2pop();
	}
	for(int k=0;k<top3;k++){
		another_ans[k]=ans[top3-k];
	}
	for(int k=0;k<top3;k++){
		ans[k]=another_ans[k];
	}
	
	printf("%d\n",sum);
	printf("%d",top3);
	for(int i=0;i<top3;i++){
		printf(" ");
		printf("%d",ans[i]);
	}
	printf("\n");
	
	return 0;
}

void S1push(int x){
	top1++;
	S1[top1]=x;
}
int S1pop(){
	top1--;
	return S1[top1+1];
}

void S2push(int x,int y){
	top2++;
	S2[top2].startarea=x;
	S2[top2].allarea=y;
}
Area S2pop(){
	top2--;
	return S2[top2+1];
}
void anspush(int x){
	top3++;
	ans[top3]=x;
}

