Let N be a positive integer. You are given a string s of length N - 1, consisting of `<` and `>`.

Find the number of permutations (p_1, p_2, \ldots, p_N) of (1, 2, \ldots, N) that satisfy the following condition, modulo 10^9 + 7:

* For each i (1 \leq i \leq N - 1), p_i < p_{i + 1} if the i-th character in s is `<`, and p_i > p_{i + 1} if the i-th character in s is `>`.

Constraints

* N is an integer.
* 2 \leq N \leq 3000
* s is a string of length N - 1.
* s consists of `<` and `>`.

Input

Input is given from Standard Input in the following format:


N
s


Output

Print the number of permutations that satisfy the condition, modulo 10^9 + 7.

Examples

Input

4
<><


Output

5


Input

5
<<<<


Output

1


Input

20
>>>><>>><>><>>><<>>


Output

217136290
import java.util.*;
import java.io.*;
class Main {
    static long MOD = (long)(1e9+7);
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        String s = sc.next();
        long[][] dp = new long[n][n];
        dp[0][0] = 1;
        for(int i = 1; i<n; i++) {
            long[] prefPrev = new long[n];
            prefPrev[0] = dp[i-1][0];
            for(int j = 1; j<n; j++) 
                prefPrev[j] = (prefPrev[j-1]+dp[i-1][j])%MOD;
            for(int j = 0; j<=i; j++) {
                int l = -1;
                int r = -1;
                if(s.charAt(i-1)=='<') {
                    l = 0;
                    r = j-1;
                }
                else {
                    l = j;
                    r = i;
                }
                if(l==-1 || r==-1) continue;
                long ans = prefPrev[r];
                if(l-1>=0)
                    ans = ((ans-prefPrev[l-1])%MOD+MOD)%MOD;
                dp[i][j] = ans;
            }
        }
        long ans = 0;
        for(int i = 0; i<n; i++)
            ans = (ans + dp[n-1][i])%MOD;
        System.out.println(ans);
    }
}