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.Scanner;

public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		char[] s = sc.next().toCharArray();
		int count = 0;
		long ans = 0;
		long M = 0; long m = 0;
		long[] a = new long[s.length];
		a[0] = 1;

		for(int i = 1; i < s.length; i++) {
			if(s[i] == s[i-1]) {
				a[count]++;
			}else{
				count++;
				a[count]++;
			}
		}

		if(s[0] == '>') {
			if(s[s.length-1] == '<') {
				ans += (a[0]+1)*a[0]/2;
				for (int i = 0; i < (count-1)/2; i++) {
					M = Math.max(a[2*i+1], a[2*i+2]);
					m = Math.min(a[2*i+1], a[2*i+2]);
					ans += (m-1)*m/2;
					ans += (M+1)*M/2;
				}
				ans += a[count]*(a[count]+1)/2;
			}else {
				ans += (a[0]+1)*a[0]/2;
				for (int i = 0; i < count/2; i++) {
					M = Math.max(a[2*i+1], a[2*i+2]);
					m = Math.min(a[2*i+1], a[2*i+2]);
					ans += (m-1)*m/2;
					ans += (M+1)*M/2;
				}
			}
		}else {
			if(s[s.length-1] == '<') {
				for (int i = 0; i < count/2; i++) {
					M = Math.max(a[2*i], a[2*i+1]);
					m = Math.min(a[2*i], a[2*i+1]);
					ans += (m-1)*m/2;
					ans += (M+1)*M/2;
				}
				ans += a[count]*(a[count]+1)/2;
			}else {
				for (int i = 0; i < (count+1)/2; i++) {
					M = Math.max(a[2*i], a[2*i+1]);
					m = Math.min(a[2*i], a[2*i+1]);
					ans += (m-1)*m/2;
					ans += (M+1)*M/2;
				}
			}
		}

		System.out.println(ans);
		sc.close();
	}
}