import sys

import numpy as np

input = sys.stdin.readline

sys.setrecursionlimit(10 ** 7)



MOD = 10**9 + 7

N = int(eval(input()))

S = input().rstrip()



dp = np.ones(N,dtype=np.int64) # 下側で余っているものの個数



for s in S:

    incr = dp.cumsum()[:-1] % MOD

    if s == '<':

        dp = incr

        continue

    decr = (dp.sum() - incr) % MOD

    dp = decr



answer = dp[0]

print(answer)
import sys

read = sys.stdin.buffer.read

readline = sys.stdin.buffer.readline

readlines = sys.stdin.buffer.readlines



import numpy as np



N = int(readline())

S = read().rstrip().decode('utf-8')



MOD = 10**9 + 7



"""

・最後に使った数に対して、下側に残っている個数 -> 数え上げ

"""



dp = np.ones(N,np.int64) # 左端



for s in S:

    prev = dp

    if s == '<':

        # 0,1,...,nがdp[n]に遷移する

        dp = prev[:-1].cumsum()

    else:

        # n+1,n+2,...がdp[n]に遷移する

        dp = prev[1:][::-1].cumsum()[::-1]

    dp %= MOD



answer = dp[0]

print(answer)
import sys
import numpy as np

input = sys.stdin.readline
sys.setrecursionlimit(10**7)
MOD = 10**9 + 7
N = int(eval(input()))
S = input().rstrip()
dp = np.ones(N, dtype=np.int64)  # 下側で余っているものの個数
for s in S:
    incr = dp.cumsum()[:-1] % MOD
    if s == "<":
        dp = incr
        continue
    decr = (dp.sum() - incr) % MOD
    dp = decr
answer = dp[0]
print(answer)

import sys

read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines
import numpy as np

N = int(readline())
S = read().rstrip().decode("utf-8")
MOD = 10**9 + 7
"""
・最後に使った数に対して、下側に残っている個数 -> 数え上げ
"""
dp = np.ones(N, np.int64)  # 左端
for s in S:
    prev = dp
    if s == "<":
        # 0,1,...,nがdp[n]に遷移する
        dp = prev[:-1].cumsum()
    else:
        # n+1,n+2,...がdp[n]に遷移する
        dp = prev[1:][::-1].cumsum()[::-1]
    dp %= MOD
answer = dp[0]
print(answer)

+ +read = sys.stdin.buffer.read +readline = sys.stdin.buffer.readline +readlines = sys.stdin.buffer.readlines -input = sys.stdin.readline -sys.setrecursionlimit(10**7) +N = int(readline()) +S = read().rstrip().decode("utf-8") -N = int(eval(input())) -S = input().rstrip() -dp = np.ones(N, dtype=np.int64)  # 下側で余っているものの個数 +""" +・最後に使った数に対して、下側に残っている個数 -> 数え上げ +""" +dp = np.ones(N, np.int64)  # 左端 -    incr = dp.cumsum()[:-1] % MOD +    prev = dp -        dp = incr -        continue -    decr = (dp.sum() - incr) % MOD -    dp = decr +        # 0,1,...,nがdp[n]に遷移する +        dp = prev[:-1].cumsum() +    else: +        # n+1,n+2,...がdp[n]に遷移する +        dp = prev[1:][::-1].cumsum()[::-1] +    dp %= MOD