Doprogramovanie do: 30. máj 2022 23:59
3 dni
Popisy už neodovzdávajte. Ešte stále však môžete odosielať vaše programy, za ktoré dostanete časť bodov.
Počet bodov:
Popis:  12b
Program:  8b

Neviem, či si to viete predstaviť, ale život takéto Krtka vôbec nie je jednoduchý. Krtko má viacero úloh, ktoré musí spraviť. Napr. vykopať tunel, rozryť nejakú záhradu, natočiť nové diely Krtka, pripraviť niekoľko sústredení a v neposlednom rade napísať bakalárku. Nie je to také jednoduché, ale keďže Krtko sa snaží pristupovať ku všetkým úlohám férovo, priradil každej úlohe nejakú prioritu. Navyše chce, aby pre každé dve úlohy platilo, že dôležitej z nich venuje viac času. Krtka teraz zaujíma koľkými spôsobmi vie rozdeliť svoj čas medzi jeho úlohy. Keďže táto úloha nie je medzi Krtkovými, musíte ju vyriešiť vy.

Úloha

Krtko má \(n\) úloh a \(m\) času. Tento čas chce (celý) rozdeliť medzi tieto úlohy tak, aby dôležitejšia úloha dostala viac času. Žiadne dve úlohy nie sú rovnako dôležité. Vašou úlohou je vypočítať, koľkými spôsobmi sa to dá urobiť. Keďže Krtkovi sa z veľkých čísel točí hlava, vypíšte toto číslo modulo \(10^9+7\) (\(1\,000\,000\,007\)).

Formát vstupu

Na jedinom riadku vstupu sú čísla \(n\) a \(m\) - počet úloh, ktoré má Krtko, a čas, ktorý chce celý Krtko úlohám venovať.

Formát výstupu

Vypíšte jedno číslo - počet spôsobov, koľkými krtko dokáže rozdeliť svoj čas medzi zadané úlohy. Keďže toto číslo môže byť veľmi veľké, vypíšte ho modulo \(10^9+7\).

Hodnotenie

V každej sade platí, že \(0 \leq n \leq 100\), \(1 \leq m < 50\,000\)

Príklady

Input:

2 4

Output:

2

Buď rozdelí čas medzi úlohy ako 0 a 4, alebo ako 1 a 3. Menej dôležitej úlohe nemôže venovať 2 alebo viac času, lebo potom by dôležitejšej úlohe nemohol venovať viac času ako menej dôležitej (teda viac ako 2).

Odovzdávanie

Na odovzdávanie sa musíš prihlásiť

Otázky a diskusia

Po skončení kola budete mať príležitosť na diskutovanie o riešeniach v diskusii pod vzorovým riešením.