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(final String[] args) {
        final Scanner scanner = new Scanner(System.in);
        final char[] s = scanner.nextLine().toCharArray();
        List<Long> words = new ArrayList<>();

        char current = s[0];
        long tmp = 0;
        for (final char c : s) {
            if (c == current) {
                tmp++;
            } else {
                words.add(tmp);
                current = c;
                tmp = 1;
            }
        }
        words.add(tmp);

        long result = 0;
        if (s[0] == '>') {
            result += words.get(0) * (words.get(0) + 1) / 2;
            words.remove(0);
        }
        for (int i = 1; i < words.size(); i = i + 2) {
            final long max = Math.max(words.get(i - 1), words.get(i));
            final long min = Math.min(words.get(i - 1), words.get(i));
            result += max * (max + 1) / 2;
            result += min * (min - 1) / 2;
        }

        if (s[s.length - 1] == '<') {
            final long end = words.get(words.size() - 1);
            result += end * (end + 1) / 2;
        }

        System.out.println(result);
    }
}
