Bharat was given a problem to solve, by his brother, Lord Ram. The problem was like, given integers, $N$ and $K$, Bharat has to find the number (possibilities) of non-increasing arrays of length $K$, where each element of the array is between $1$ and $N$ (both inclusive). He was confused, regarding this problem. So, help him solve the problem, so that, he can give the answer of the problem, to his brother, Lord Rama. Since, the number of possible sub-arrays can be large, Bharat has to answer the problem as "number of possible non-increasing arrays", modulo  $10^9$ $+$ $7$.

-----Input:-----
- Two space-seperated integers, $N$ and $K$.

-----Output:-----
- Output in a single line, the number of possible non-increasing arrays, modulo $10^9$ $+$ $7$.

-----Constraints:-----
- $1 \leq N, K \leq 2000$

-----Sample Input:-----
2 5

-----Sample Output:-----
6

-----Explanation:-----
- Possible Arrays, for the "Sample Case" are as follows: 
- {1, 1, 1, 1, 1}
- {2, 1, 1, 1, 1}
- {2, 2, 1, 1, 1} 
- {2, 2, 2, 1, 1}
- {2, 2, 2, 2, 1}
- {2, 2, 2, 2, 2}
- Hence, the answer to the "Sample Case" is $6$ ($6$ % ($10^9$ $+$ $7$)).

```python

USER_FILENAME = "<user_code>"
import sys, json, builtins
import math, heapq, bisect, itertools, functools, collections, statistics, fractions, decimal, operator, array, random, re, string, os, pathlib
try:
    import resource as _res
except Exception:
    _res = None
from collections import Counter, defaultdict, deque, OrderedDict
from functools import lru_cache, reduce
from itertools import accumulate, permutations, combinations, product
from math import gcd, ceil, floor, sqrt
from decimal import Decimal
try:
    from typing import *
except Exception:
    pass
try:
    sys.setrecursionlimit(1_000_000)
except Exception:
    pass
try:
    import site as _site
    try:
        _sys_sites = _site.getsitepackages() if hasattr(_site, "getsitepackages") else []
        for _p in _sys_sites:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
    try:
        _usp = _site.getusersitepackages()
        if isinstance(_usp, str):
            _usp = [_usp]
        for _p in _usp:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
except Exception:
    pass

ns = {"__name__": "__main__"}
for _k, _v in list(globals().items()):
    if not _k.startswith("_"):
        ns[_k] = _v
_CODE = "# cook your dish here\n# import sys\n# sys.stdin = open('input.txt', 'r') \n# sys.stdout = open('output.txt', 'w')\n\nimport math\nimport collections\nfrom sys import stdin,stdout,setrecursionlimit\nimport bisect as bs\nsetrecursionlimit(2**20)\nM = 10**9+7\n\ndef nCrModp(n, r, p): \n if (r > n- r): \n  r = n - r \n C = [0 for i in range(r + 1)] \n \n C[0] = 1\n \n for i in range(1, n + 1): \n  for j in range(min(i, r), 0, -1): \n   C[j] = (C[j] + C[j-1]) % p \n \n return C[r] \n \n\n# T = int(stdin.readline())\n# for _ in range(T):\n # n = int(stdin.readline())\nn,k = list(map(int,stdin.readline().split()))\n # a = list(map(int,stdin.readline().split()))\n # q = list(map(int,stdin.readline().split()))\n # b = list(map(int,stdin.readline().split()))\n # a = stdin.readline().strip('\\n')\nN = n+k-1\nR = n-1\nprint(nCrModp(N,R,M))"
_co = compile(_CODE, USER_FILENAME, "exec")
exec(_co, ns, ns)

```

Measured memory_bytes: 13211