import Data.List

main = do
  s <- getLine
  let ans = compute s
  print ans

{-
>>> 下りは底から 3 2 1 0 と
<<< 上りも底から 0 1 2 3 とカウントしていく、
底は必ず0
問題は山の方で、>>><<<< 大きい方を選択する必要がある
-}

compute :: String -> Int
compute s = loop 0 $ map f $ group $ map ('<' ==) s
  where
    f as = (if head as then Right else Left) (length as)
    t n = n * (n-1) `div` 2
    loop acc (Right a : Left b : es) = loop (acc + t a + t b + max a b) es
    loop 0 (Left a : es) = loop (t (succ a)) es
    loop acc (Right a : []) = acc + t (succ a)
    loop acc [] = acc
