main = do
 s<-getLine
 let bi=f ((length s)-1)
 print bi
 print $ formulae s
f 0 = [[]]
f n = (map (0:) f (n-1) )++(map (1:) f (n-1))
g (x:xs) (y:ys)
    |y==0 = x:(g xs ys)
    |otherwise = x:'+':xs
g x _ = [x]
g _ _ = []

formulae x ys=Zipwith ($) (map (flip g) ys) x