Universal Cup Judging System

Universal Cup

時間限制: 3.0 s 記憶體限制: 1024 MB 總分: 100 可 Hack ✓
统计

Є по одній коробці, позначеній кожним цілим числом від $1$ до $N$. Також для кожного цілого числа від $1$ до $N$ є $M$ кульок, позначених цим цілим числом.

Ці $NM$ кульок перемішують, а потім розподіляють у $N$ коробок так, що в кожну коробку потрапляє рівно $M$ кульок.

Існує $\frac{(NM)!}{(M!)^N}$ можливих способів розмістити кульки (якщо всі кульки вважати розрізнюваними), і всі ці розташування трапляються з однаковою ймовірністю.

Ви виконуватимете операції з цими коробками та кульками. Одна операція складається з таких кроків:

  1. Виберіть одну коробку та підійдіть до неї.
  2. Якщо в цій коробці немає жодної кульки, завершіть операцію.
  3. Виберіть будь-яку одну кульку з цієї коробки та викиньте її назовні.
  4. Нарешті, підійдіть до коробки, позначка якої збігається з позначкою щойно викинутої кульки, і поверніться до кроку $2$.

Визначимо ваш рахунок як кількість операцій, необхідних для того, щоб викинути всі $NM$ кульок. Ви хочете мінімізувати цей рахунок.

Знайдіть математичне сподівання рахунку за оптимальної гри за модулем $998244353$.

Input

Перший рядок містить числа $N$ і $M$ у такому порядку, розділені пробілами. ($1 \le N \le 10^5, 1 \le M \le 100$)

Output

Виведіть відповідь.

Examples

Input 1

2 2

Output 1

166374060

Input 2

3 1

Output 2

831870296

Input 3

100000 100

Output 3

402978825

Note

Для першого прикладу можливі розташування кульок і відповідні оптимальні способи дій є такими:

  • Покласти дві кульки з позначкою $1$ у коробку $1$, а дві кульки з позначкою $2$ — у коробку $2$. (Ймовірність $1/6$)
    • У першій операції підійдіть до коробки $1$. Звідти дістаньте кульку з позначкою $1$ і підійдіть до коробки $1$. Потім дістаньте ще одну кульку з позначкою $1$ і знову підійдіть до коробки $1$. У цей момент коробка $1$ порожня, тому завершіть операцію.
    • У другій операції підійдіть до коробки $2$. Звідти дістаньте кульку з позначкою $2$ і підійдіть до коробки $2$. Потім дістаньте ще одну кульку з позначкою $2$ і знову підійдіть до коробки $2$. У цей момент коробка $2$ порожня, тому завершіть операцію.
    • У цьому випадку мінімально досяжний рахунок дорівнює $2$.
  • Покласти по одній кульці з позначкою $1$ і по одній кульці з позначкою $2$ у кожну з коробок $1$ та $2$. (Ймовірність $2/3$)
    • У першій операції підійдіть до коробки $1$. Звідти дістаньте кульку з позначкою $1$ і підійдіть до коробки $1$. Потім дістаньте кульку з позначкою $2$ і підійдіть до коробки $2$. Потім дістаньте кульку з позначкою $2$ і підійдіть до коробки $2$. Потім дістаньте кульку з позначкою $1$ і підійдіть до коробки $1$. У цей момент коробка $1$ порожня, тому завершіть операцію.
    • У цьому випадку мінімально досяжний рахунок дорівнює $1$.
  • Покласти дві кульки з позначкою $2$ у коробку $1$, а дві кульки з позначкою $1$ — у коробку $2$. (Ймовірність $1/6$)
    • У першій операції підійдіть до коробки $1$. Звідти дістаньте кульку з позначкою $2$ і підійдіть до коробки $2$. Потім дістаньте кульку з позначкою $1$ і підійдіть до коробки $1$. Потім дістаньте кульку з позначкою $2$ і підійдіть до коробки $2$. Потім дістаньте кульку з позначкою $1$ і підійдіть до коробки $1$. У цей момент коробка $1$ порожня, тому завершіть операцію.
    • У цьому випадку мінімально досяжний рахунок дорівнює $1$.

Отже, мінімальний рахунок дорівнює $2$ з ймовірністю $1/6$, а мінімальний рахунок дорівнює $1$ з ймовірністю $5/6$, тому загальне математичне сподівання рахунку становить $7/6$. Отже, виведіть $166374060$, що відповідає цьому значенню за модулем $998244353$.

Визначення математичного сподівання за модулем $998244353$

Можна довести, що шукане математичне сподівання завжди є раціональним числом. Крім того, за обмежень цієї задачі, якщо математичне сподівання записано у вигляді нескоротного дробу $\frac{y}{x}$, гарантується, що $x$ не ділиться на $998244353$.

У цьому випадку існує єдине ціле число $z$ від $0$ до $998244352$ включно, яке задовольняє умову $xz \equiv y \pmod{998244353}$. Виведіть це $z$.

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#1526EditorialOpen题解jianglyView

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.