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.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Main {
	
	public static void main(String[] args) throws IOException {
		MyScanner sc = new MyScanner();
		PrintWriter out = new PrintWriter(System.out);
		char[] S = sc.next().toCharArray();
		int N = S.length + 1;
		int[] elems = new int[N];
		Arrays.fill(elems, - 1);
		if (S[0] == '<') elems[0] = 0;
		if (S[N-2] == '>') elems[N - 1] = 0;
		for (int i = 0; i + 1 < N - 1; i++) {
			if (S[i] == '>' && S[i + 1] == '<') {
				elems[i + 1] = 0;
			}
		}
		for (int i = 0; i < N - 1; i++) {
			if (S[i] == '<' && elems[i] >= 0) {
				elems[i + 1] = Math.max(elems[i + 1], elems[i] + 1);
			}
		}
		for (int i = N - 2; i >= 0; i--) {
			if (S[i] == '>' && elems[i + 1] >= 0) {
				elems[i] = Math.max(elems[i], elems[i + 1] + 1);
			}
		}
		long ans = 0;
		for (int elem : elems) {
			ans += elem;
		}
		out.println(ans);
		
		out.flush();
	}
	
	
	static class MyScanner {
		private BufferedReader br;
		private StringTokenizer tokenizer;
		
		public MyScanner() {
			br = new BufferedReader(new InputStreamReader(System.in));
		}
		
		public String next() {
			while (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					tokenizer = new StringTokenizer(br.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
			return tokenizer.nextToken();
		}
		
		public int nextInt() {
			return Integer.parseInt(next());
		}
		
		public long nextLong() {
			return Long.parseLong(next());
		}
	}
}
