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 {
	static class Pair{
		char c;
		long len;
		Pair(char c , int l){
			this.c = c;
			this.len = l;
		}
		@Override
		public String toString() {
			return c +" " + len;
		}
	}
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String S = sc.next();
		char c = S.charAt(0);
		int seq = 1;
		List<Pair> ps = new ArrayList<Pair>();
		for(int i = 1 ; i < S.length() ; ++i) {
			if(S.charAt(i) == c) {
				++seq;
			}else {
				ps.add(new Pair(c, seq));
				c = S.charAt(i);
				seq = 1;
			}			
		}
		ps.add(new Pair(c, seq));
//		System.out.println(ps);
		long sum = 0;
		for(int i = 0 ; i < ps.size() ; ++i) {
			Pair p = ps.get(i);
			long s = p.len;
			if(p.c == '>') {
				sum += s * (s + 1) / 2;
				if(i > 0) {
					Pair prev = ps.get(i - 1);
					if(prev.len > p.len) {
						sum += prev.len - p.len;
					}
				}
			}else {
				sum += s * (s - 1) / 2;				
			}
		}
		if(ps.get(ps.size() - 1).c == '<') {
			long s = ps.get(ps.size() - 1).len;
//			sum += s * (s + 1) / 2;
			sum += s;
		}
		System.out.println(sum);
	}
}
