#dpt. [dp_t]Permutation

[dp_t]Permutation

問題文

NN を正整数とします。 長さ N1N - 1 の文字列 ss が与えられます。 ss<> からなります。

(1,2,ldots,N)(1, 2, \\ldots, N) を並べ替えた順列 (p1,p2,ldots,pN)(p_1, p_2, \\ldots, p_N) であって、次の条件を満たすものは何通りでしょうか? 109+710^9 + 7 で割った余りを求めてください。

  • ii (1leqileqN11 \\leq i \\leq N - 1) について、ssii 文字目が < の場合は pi<pi+1p_i < p_{i + 1} であり、ssii 文字目が > の場合は pi>pi+1p_i > p_{i + 1} である。

制約

  • NN は整数である。
  • 2leqNleq30002 \\leq N \\leq 3000
  • ss は長さ N1N - 1 の文字列である。
  • ss<> からなる。

入力

入力は以下の形式で標準入力から与えられる。

NN ss

出力

条件を満たす順列は何通りか? 109+710^9 + 7 で割った余りを出力せよ。


入力例 1

4
<><

出力例 1

5

条件を満たす順列は次の 55 通りです。

  • (1,3,2,4)(1, 3, 2, 4)
  • (1,4,2,3)(1, 4, 2, 3)
  • (2,3,1,4)(2, 3, 1, 4)
  • (2,4,1,3)(2, 4, 1, 3)
  • (3,4,1,2)(3, 4, 1, 2)

入力例 2

5
<<<<

出力例 2

1

条件を満たす順列は次の 11 通りです。

  • (1,2,3,4,5)(1, 2, 3, 4, 5)

入力例 3

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

出力例 3

217136290

答えを 109+710^9 + 7 で割った余りを出力することを忘れずに。