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
# 参考 http://fluffyowl.hatenablog.com/entry/2019/01/08/114131

N = int(input())
s = input()

MOD = 10**9 + 7

# dp[i][j] : 左からi番目の数値まで確定していて、最後に置いた値が未使用の値のうちj番目に小さい値 である場合の数(0-indexed)
dp = [[0]*N for _ in range(N)]
for i in range(N):
    dp[0][i] = 1 # 一番左は0からN-1まで1通りずつ

for i in range(1,N):
    if s[i-1] == ">": # dp[i-1][j]をdp[i][j-1],...,dp[i][0] に足す
        x = dp[i-1][N-i]
        for j in reversed(range(N-i)): # jが大きい要素から順に累積和を足す
            dp[i][j] += x
            dp[i][j] %= MOD
            x += dp[i-1][j]
            x %= MOD
    else: # dp[i-1][j]をdp[i][j],...,dp[i][N-i-1] に足す。dp[i][j]が含まれる点に注意
        x = dp[i-1][0]
        for j in range(N-i): # jが小さい要素から順に累積和を足す
            dp[i][j] += x
            dp[i][j] %= MOD
            x += dp[i-1][j+1]
            x %= MOD

print(dp[N-1][0]) # 最後に置く値は必ず0番目に小さいのでdp[N-1][0]以外のdp[N-1]の要素は0