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.*;
import static java.lang.Integer.*;
import static java.lang.Long.*;
import static java.lang.Math.*;
import static java.lang.System.*;

public class Main {
	public static void main(String[] args) {
		int i,j;
		Scanner sc = new Scanner(in);
		char[] s = sc.next().toCharArray();
		sc.close();
		long sum=0;
		long dai=0;
		long sho=0;
		if (s[0]=='<') {
			sho++;
		} else {
			dai++;
		}
		for (i = 1; i < s.length; i++) {
			if (s[i]=='<') {
				if(s[i-1]=='>') {
					long n = Math.max(sho, dai);
					long m = Math.min(sho, dai)-1;
					sum+=n*(n+1)/2+m*(m+1)/2;
//					out.printf("<:%d >:%d sum:%d%n", sho, dai, sum);
					sho=0;
					dai=0;
				}
				sho++;
			} else {
				dai++;
			}
		}
		long n = Math.max(sho, dai);
		long m = Math.min(sho, dai)-1;
		sum+=n*(n+1)/2+m*(m+1)/2;
//		out.printf("<:%d >:%d sum:%d%n", sho, dai, sum);
		out.println(sum);
	}
}
