#include<stdio.h>
#include<string.h>
#define N 20001
typedef struct
{
  int x[2];//position of both side of damage
  int area;
} damage;
void calcDamage(char*);
void push(damage);
damage pop(void);
void printStack(void);
damage stack[N];
int top=0;
int main(void)
{
  char str[N];//input
  scanf("%s",str);
  calcDamage(str);
  printStack();
  return 0;
}
void calcDamage(char *str)
{
  int i;//counter
  int x=0,y=0;//current position
  int p[N];//array of depth
  p[0]=0;
  int mindepth=0;//minimum depth (default: 0)
  damage temp;
  for(x=1;x<=strlen(str);x++)
    {
      switch(str[x-1])
        {
        case '\\':
          y--;
          p[x]=y;
          break;
        case '/':
          y++;
          p[x]=y;
          if(y>mindepth) mindepth=y;
          else
            {
              for(i=x-1;i>=0;i--)
                {
                  if(p[i]==y) break;
                }
              if(i>=0)
                {
                  temp.x[0]=i;
                  temp.x[1]=x;
                  temp.area=((x-i)+(x-i-2))/2;
                  push(temp);
                }
            }
          break;
        case '_':
          p[x]=y;
          break;
        }
    }
}
void push(damage d)
{
  damage p;//poped element
  while(top>0)
    {
      p=pop();
      #ifdef DEBUG
      printf(" pop(top=%d)\n",top);
      #endif
      if(p.x[0]>d.x[0]&&p.x[1]<d.x[1])
        {
          d.area+=p.area;
          #ifdef DEBUG
          printf(" merged->%d,%d,%d\n",d.x[0],d.x[1],d.area);//debugging
          #endif
        }
      else
        {
          push(p);
          #ifdef DEBUG
          printf("push->%d,%d,%d\n",d.x[0],d.x[1],d.area);//debugging
          #endif
          break;
        }
    }
  top++;
  stack[top]=d;
  #ifdef DEBUG
printf("push->%d,%d,%d\n",d.x[0],d.x[1],d.area);//debugging
  #endif
}
damage pop(void)
{
  top--;
  return stack[top+1];
}
void printStack(void)
{
  int i=0;//counter
  int sum=0;//sum of damage
  for(i=1;i<=top;i++) sum+=stack[i].area;
  printf("%d\n",sum);
  printf("%d",top);
  for(i=1;i<=top;i++) printf(" %d",stack[i].area);
  printf("\n");
}
