#### Registered Users Only

Please login to view and utilize this feature.

Due to boredom, Barr the bear is entertaining himself with *N* miniature bear figures! And unsurprisingly, these little bears are labelled from 1 to *N*. Barr wants to line them up in a row. However, Barr imposes strict lining regulations.

We call a pair of bears labelled *i* and *j* an **awesome pair** if *i* is before *j* in the line and *i* > *j*. The **awesomeness** of the lineup is the number of awesome pairs in it. For example, the awesomeness of the lineup (1, 4, 3, 2) is 3 because there are 3 awesome pairs: (4, 3), (4, 2) and (3, 2).

Barr wants the **awesomeness** of the lineup to be exactly *C*, as he deems it optimal. If the lineup is not awesome enough, he will be sad. If the lineup is too awesome, he will be very sad. Help Barr remain happy by determining the number of such lineups! As the number can be very big, output it modulo 1,000,000,007.

## Input

The first and only line of input contains two integers,*N*(1 ≤

*N*≤ 1,000) and

*C*(0 ≤

*C*≤ 10,000).

## Output

Output the number of lineups modulo 1,000,000,007.## Sample Input 1

10 1

## Sample Output 1

9

## Sample Input 2

4 3

## Sample Output 2

6

## Sample Input 3

9 13

## Sample Output 3

17957

### Tags

### Subtasks and Limits

Subtask | Score | #TC | Time | Memory | Scoring |
---|---|---|---|---|---|

1 | 0 | 3 | 1s | 32MB | Average |

2 | 100 | 12 | 1s | 32MB | Average |

### Judge Compile Command

g++ ans.cpp -o awesome -Wall -static -O2 -lm -m64 -s -w -std=gnu++14 -fmax-errors=512