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.

Examples

Input

<>>


Output

3


Input

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


Output

28
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.next();
        int len = s.length();
        char prev = s.charAt(0);
        int streakLen = 1;
        List<Integer> l = new ArrayList<>();
        for(int i=1; i<len; i++) {
            char c = s.charAt(i);
            if(c==prev) {
                streakLen++;
            }
            else {
                l.add(streakLen * (prev == '>' ? -1 : 1));
                streakLen = 1;
                prev = c;
            }
        }
        l.add(streakLen * (prev == '>' ? -1 : 1));

        long sum = 0;
        for(int i=0; i<l.size(); i++) {
            int n = l.get(i);
            if(n>0) {
                sum += (long)n * (long)(n-1) / 2;
                if(i==l.size()-1) {
                    sum += n;
                }
            }
            else {
                n *= -1;
                sum += (long)n * (long)(n+1) / 2;
                if(i>0) {
                    sum += Math.max(n, l.get(i-1)) - n;
                }
            }
        }
        System.out.println(sum);
    }
}
