#include<stdio.h>
#include<string.h>
#define N 20000
typedef struct Data{
  int area,posi;
}Data;
  
Data t[N];
int u[N],n,i,T,U,ans,A;
char str1[N+1];
  
Data X,Y;
  
void Dpush(Data data)
{
  t[T++]=data;
}
Data Dpop()
{
  return t[--T];
}
void push(int x)
{
  u[U++]=x;
}
int pop()
{
  return u[--U];
}
void init()
{
  ans=U=T=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(U==0)
    continue;
    A=pop();
    X=mkData(i-A,A);
    ans+=i-A;
    while(T>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,T);
  for(i=0;i<T;i++){
    printf(" ");
    printf("%d",t[i].area);
  }
  printf("\n");
  return 0;
}