Problem:
Score : 300 points

Problem Statement

Given is a string S of length N-1.
Each character in S is < or >.

A sequence of N non-negative integers, a_1,a_2,\cdots,a_N, is said to be good when the following condition is satisfied for all i (1 \leq i \leq N-1):

If S_i= <: a_i<a_{i+1}

If S_i= >: a_i>a_{i+1}

Find the minimum possible sum of the elements of a good sequence of N non-negative integers.

Constraints

2 \leq N \leq 5 \times 10^5

S is a string of length N-1 consisting of < and >.

Input

Input is given from Standard Input in the following format:

S

Output

Find the minimum possible sum of the elements of a good sequence of N non-negative integers.

Sample Input 1

<>>

Sample Output 1

3

a=(0,2,1,0) is a good sequence whose sum is 3.
There is no good sequence whose sum is less than 3.

Sample Input 2

<>>><<><<<<<>>><

Sample Output 2

28

Solution in Ruby (2.3.3) (judge verdict: Wrong Answer)

s = gets.chomp!
s = s.split("")
ls = []
n = s.length-1

def ak(s, i)
  k = 0
  v = s.length - (i)
  #p v
  while i <= v
    if s[i] == ">"
      k+=1
      i+=1
    else
      break
    end
  end
  #p k
  return k
end

if s[0]=="<"
  ls << 0
else
  ls << ak(s, 0)
end

#n-1 = ls.length-2
for i in 0..n-1
  if s[i] == ls[i+1]

    #< <
    if s[i] == "<"
      ls << ls[i] + 1
    #> >
    else
      ls << ls[i] - 1
    end
  else
    #ls[i]<ls[i+1]>
    if s[i] == "<"
      #この後'>'がいくつ連続するか数える var kとする。
=begin
      k = 0
      #vは残りの要素数
      i = 0
      v = s.length - (i+1)
      p v
      while v >=0
        if s[v] == ">"
          k+=1
          v-=1
        else
          break
        end
      end
      p k
=end

      ls << ak(s, i+1)

    #ls[i]>ls[i+1]<
    else
      #ls[i+1] == 0
      ls << ls[i] - 1
    end
  end
end
if s[n] == ">"
  ls << 0
else
  ls << ls[n]+1
end

p ls.length