import sys
from typing import List
from functools import lru_cache
import bisect
n, m = map(int, input().split())
mod = 1000000007
class Solution:
def computeWays(self, n: int, m: int) -> int:
@lru_cache(None)
def dfs(n, m):
if n == 0:
return 1
if m == 0:
return 0
ans = 0
for k in range(n):
ans = (ans + (dfs(n - k - 1, m - 1) * dfs(k, m - 1)) % mod) % mod
return ans % mod
return dfs(n, m)
# 测试用例:
solution = Solution()
print(solution.computeWays(n, m))

京公网安备 11010502036488号