You are given two integers n and m. Calculate the number of pairs of arrays (a, b) such that:

  * the length of both arrays is equal to m; 
  * each element of each array is an integer between 1 and n (inclusive); 
  * a_i ≤ b_i for any index i from 1 to m; 
  * array a is sorted in non-descending order; 
  * array b is sorted in non-ascending order. 



As the result can be very large, you should print it modulo 10^9+7.

Input

The only line contains two integers n and m (1 ≤ n ≤ 1000, 1 ≤ m ≤ 10).

Output

Print one integer – the number of arrays a and b satisfying the conditions described above modulo 10^9+7.

Examples

Input


2 2


Output


5


Input


10 1


Output


55


Input


723 9


Output


157557417

Note

In the first test there are 5 suitable arrays: 

  * a = [1, 1], b = [2, 2]; 
  * a = [1, 2], b = [2, 2]; 
  * a = [2, 2], b = [2, 2]; 
  * a = [1, 1], b = [2, 1]; 
  * a = [1, 1], b = [1, 1]. 
import math

def helper(dp, h, w):
    if h<0 or w<0:
        return 1
    if h==0 or w==0:
        dp[h][w] = h+1
        return dp[h][w]
    if dp[h][w] != -1:
        return dp[h][w]
    dp[h][w] = 0
    for i in range(h+1):
        dp[h][w] += helper(dp, i, w-1)
    return dp[h][w]

def solve():
    n, m = map(int, input().split())
    modulo = 10**9 + 7
    dp = [[-1]*(m+1) for _ in range(n+1)]
    ans = 0
    for h in range(n):
        ans += helper(dp, h, m-2)*helper(dp, n-h-1, m-1)
    print(ans%modulo)


for _ in range(1):
    solve()
