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.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Main main = new Main();
        main.solve();
    }
    public void solve() {
        Scanner scan = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
        String S = scan.next();
        char[] data = S.toCharArray();
        int[] a1 = new int[data.length+1];
        for (int i = 0; i < data.length; i++) {
            if (i == 0) {
                if (data[i] == '<') {
                    a1[0] = 0;
                    a1[1] = 1;
                }
                continue;
            }
            if (data[i-1] == '>' && data[i] == '<') {
                a1[i] = 0;
                a1[i+1] = 1;
                continue;
            }
            if (data[i-1] == '<' && data[i] == '<') {
                a1[i+1] = a1[i]+1;
            }
        }
        int[] a2 = new int[data.length+1];
        for (int i = data.length-1; 0 <= i; i--) {
            if (i == data.length-1) {
                if (data[i] == '>') {
                    a2[i+1] = 0;
                    a2[i] = 1;
                }
                continue;
            }
            if (data[i] == '>' && data[i+1] == '<') {
                a2[i] = 1;
                a2[i+1] = 0;
                continue;
            }
            if (data[i] == '>' && data[i+1] == '>') {
                a2[i] = a2[i+1]+1;
            }
        }
        long[] a = new long[data.length + 1];
        for (int i = 0; i < data.length + 1; i++) {
            a[i] = Math.max(a1[i], a2[i]);
        }
        System.out.println(Arrays.stream(a).sum());
    }
}
