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.io.PrintWriter;
import java.util.*;

class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String S = sc.next();
        sc.close();

        long sum = 0;
        String ar[] = S.split("");
        Queue<String> queue = new ArrayDeque<>();
        List<String> list = new ArrayList<>();
        for (String s : ar)
            queue.add(s);
        
        int old = 0;
        while (queue.size() >0) {
            while (queue.size()>0 && (list.size()==0 || list.get(0).equals(queue.peek()))) {
                list.add(queue.poll());
            };
            if (">".equals(list.get(0))) {
                if (old<list.size()) {
                    sum -= old;
                } else {
                    sum -= list.size();
                }
                sum += func(list.size());
            } else {
                old = list.size();
                sum += func(list.size());
            }
            list.clear();
        };

        PrintWriter out = new PrintWriter(System.out);
        out.println(sum);
        out.flush();
    }
    private static long func(int n) {
        if (n==1) {
            return n;
        } else {
            return n+func(n-1);
        }
    }
}