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]. 
# -*- coding: utf-8 -*-
"""
Created on Thu Dec 12 16:11:15 2019

@author: Mridul Garg
"""

#def fact(a):
#    fac = 1
#    for i in range(2, a+1):
#        fac *= i
#        
#    return fac
#
##import math
#
#n, m = list(map(int, input().split(" ")))
#
#if 2*m <= n:
#    z = 2*m
#else:
#    z = n
#    
#t = 1
#tfac = t
#a = 2*m - 1
#afac = fact(a)
#
#ans = 0
#
#print(afac, tfac)
#
#for i in range(1, z+1):
#    
#    nfac = 1
#    topfac = 1
#    for j in range(i):
#        nfac *= (n-j)
#    
#    temp = (nfac/fact(i)) * (afac/(fact(i-1)*fact(a+1-i)))
#    ans += temp%(10**9 + 7)
#    
#    print(nfac/fact(i), afac/(tfac*fact(a+1-i)))
#    
##    ans %= (10**9 + 7)
#    tfac *= i
#    
#print(ans%(10**9 + 7))

from math import factorial as fact
mod = 10**9 + 7

def C(n, k):
	return fact(n) // (fact(k) * fact(n - k))

n, m = map(int, input().split())
print(C(n + 2*m - 1, 2*m) % mod)