Перший, хто розв'язав
Відоме змагання з програмування Forcedeltas має учасників, задач і триває хвилин.
Для кожного учасника і кожної задачі відоме ціле число . Якщо , це означає, що учасник не може розв'язати задачу . Інакше це означає, що учасник може розв'язати задачу рівно за хвилин.
Усі учасники дотримуватимуться однієї стратегії. Зокрема, кожен учасник складе список усіх задач, які він може розв'язати, перемішає список рівномірно випадковим чином і розв'язуватиме задачі в такому порядку, поки список не закінчиться або змагання не завершиться.
Наприклад, якщо список для учасника після перемішування виглядає як , то він розв'яже задачу на хвилині , задачу на хвилині і так далі. Зверніть увагу, що жодна задача не може бути розв'язана на хвилині або пізніше.
Ми скажемо, що учасник отримує нагороду Перший, хто розв'язав для задачі , якщо жоден інший учасник не розв'язав задачу строго раніше. Зокрема, це означає, що кілька учасників можуть отримати нагороду за одну й ту ж задачу.
Знайдіть очікувану кількість нагород, які отримає кожен учасник, за модулем (див. розділ Вихідні дані для деталей).
Вхідні дані
Перша строка містить три цілі числа , і — кількість учасників, кількість задач і тривалість змагання в хвилинах (; ; ).
Наступні строк містять по цілих чисел (). -те з цих чисел позначає кількість хвилин, необхідних учаснику для розв'язання задачі , або , якщо учасник не може розв'язати задачу .
Вихідні дані
Виведіть цілих чисел — очікувану кількість нагород, які отримають учасники , за модулем .
Формально, нехай . Можна показати, що очікувана кількість нагород може бути виражена як нескоротний дріб , де і є цілими числами і . Виведіть ціле число, яке дорівнює . Іншими словами, виведіть таке ціле число , що і .
Приклади
Примітка
У прикладі тесту учасник завжди отримає нагороду за задачу , учасник завжди отримає нагороду за задачу , очікувана кількість нагород, які отримає учасник , дорівнює , учасник ніколи не отримає жодної нагороди, а очікувана кількість нагород, які отримає учасник , дорівнює .