#include<stdio.h>
#include<string.h>
#define N 20000
typedef struct Data{
  int area,posi;
}Data;

Data t[N];
int u[N],n,i,j,k,ans,A;
char str1[N+1];

Data X,Y;

void Dpush(Data data)
{
  t[j++]=data;
}
Data Dpop()
{
  return t[--j];
}
void push(int x)
{
  u[k++];
}
int pop()
{
  return u[--k];
}
void init()
{
  ans=j=k=0;
}

Data mkData(int x,int y)
{
  Data res;
  res.area=x;
  res.posi=y;

  return res;
}

int main(){
  init();
  scanf("%s",str1);
  n=strlen(str1);

  for(i=0;i<n;i++){

    if(str1[i]=='/'){
      if(k==0)
	A=pop();
	X=mkData(i-A,A);
	ans+=i-A;
	while(j>0){
	  Y=Dpop();
	  if(Y.posi<A){
	    Dpush(Y);
	    break;
	  }
	  X.area+=Y.area;
	  if(Y.posi<X.posi)
	    X.posi=Y.posi;
	}
	Dpush(X);
    }
    else if(str1[i]=='\\'){
      push(i);
    }
  }
  printf("%d\n%d",ans,j);
  for(i=0;i<j;i++){
    printf(" ");
    printf("%d",t[i].area);
  }
  printf("\n");
  return 0;
}