import scala.io.StdIn.readLine

object Main {
  def getSubArea(hd:Int,stack2:List[(Int,Int)],subarea:Int):List[(Int,Int)] = {
    if(stack2.length==0) (hd,subarea)::stack2
    else {
      stack2 match {
        case hd2::tl2 =>
          if(hd2._1<=hd) (hd,subarea)::stack2
          else {
            getSubArea (hd,tl2,subarea+hd2._2)
          }
        case _ => throw new Exception("unexpected")
      }
    }
  }

  def getArea(stack:List[Int],stack2:List[(Int,Int)],area:Int,s:String,i:Int):(Int,List[(Int,Int)]) = {
    if(i==s.length) (area,stack2)
    else {
      if(s(i) == '\\') getArea(i::stack,stack2,area,s,i+1)
      else if(s(i) == '/' && stack.length!=0) {
        stack match {
          case hd::tl =>
            getArea(tl,getSubArea(hd,stack2,i-hd),area+i-hd,s,i+1)
          case _ => throw new Exception("unexpected")
        }
      } else getArea(stack,stack2,area,s,i+1)
    }
  }

  def main(args:Array[String]) = {
    val s = readLine
    val n = getArea(Nil,Nil,0,s,0)
    println(n._1)
    println(n._2.length + " " + n._2.reverse.map(_._2).mkString(" "))
  }
}