Код подтверждения

Сложность: 61%

На финансовом рынке новый игрок: К-банк. Неотъемлемой частью его маркетинга является число kk. Маркетологи вставляют его всюду и везде: это у них и процент по кредитам, и количество вкладок в приложении, и количество часов, которое вы проведёте в очереди за оформлением карты.

Как и в любом другом банке, перед каждой операцией в интернете клиентам приходит код подтверждения, состоящий из nn цифр от 0 до 9. Маркетологи К-банка хотят, чтобы клиентам всегда приходил такой код, чтобы нашлась цифра, встречающаяся в этом коде ровно kk раз.

У службы безопасности возникли вопросы к безопасности этой фишки, ведь количество таких кодов может быть меньше, чем количество всех возможных кодов длины nn – а значит, его легче будет угадать. Помогите службе безопасности: посчитайте, сколько существует кодов длины nn, подходящих под критерий маркетологов.

Входные данные

В единственной строке через пробел записаны два числа nn и kk (1kn31051 \le k \le n \le 3 \cdot 10^5).

Выходные данные

В единственной строке выведите одно число – количество таких кодов длины nn, что найдётся цифра, встречающаяся в коде ровно kk раз.

Так как ответ может быть очень большим, выведите его по модулю 109+710^9 + 7.

Подзадачи

баллынеобх. подзадачиограничения
1

5

-

n6n \le 6

2

20

1

n1000n \le 1000

3

30

2

n105n \le 10^5

4

15

-

n<2kn < 2k

5

10

4

n<3kn < 3k

6

20

3, 5

Нет дополнительных ограничений

STDINSTDOUT
4 2
4590
6 2
735750