eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Риби

Риби

У казках Шахерезади розповідається, що далеко в центрі пустелі є озеро. Спочатку в озері було \textbf{F} риб. З кращих самоцвітів Землі було відібрано \textbf{K} різних видів, і сталось так, що кожна з \textbf{F} риб проковтнула рівно один самоцвіт якогось виду. Оскільки \textbf{K} могло бути менше ніж \textbf{F}, дві або більше рибин могли проковтнути самоцвіти одного виду. З часом деякі риби з'їли інших риб. Одна риба могла з'їсти іншу рибу тільки у тому випадку, якщо її довжина хоча б у два рази більше (риба \textbf{A} могла з'їсти рибу \textbf{B} тільки у тому випадку, якщо \textbf{LA} >= \textbf{2} * \textbf{LB}). Не існує правил, згідно яким одна риба вирішує з'їсти інших рыб. Риба могла вирішити з'їсти деяку кількість менших риб, у той же час деякі риби могли вирішити не їсти інших риб, не дивлячись на те, що вони могли б це зробити. Коли риба з'їдала меншу рибу, її довжина не змінювалась, але всі самоцвіти з шлунку меншої риби попадали непошкодженими у шлунок більшої риби. У казках Шахерезади говориться, щто якщо зайти цо озеро, то можна зловити рівно одну рибу і забрати всі самоцвіти з її шлунку. Ви, звичайно, бажаєте випробувати долю, але перед тим, як ви відправитесь у подорож, вам необхідно взнати, яку кількість різних комбінацій самоцвітів ви можете отримати, зловивши одну єдину рибу. Напишіть програму, яка за довжиною кожної риби і виду початково проковтнутих кожною рибою самоцвіта визначає кількість різноманітних комбінацій самоцвітів, які можуть знаходитись у шлунку якої-небудь риби, по модулю заданого цілого числа \textbf{M}. Комбінація визначається тільки кількістю самоцвітів кожного з \textbf{K} видів. Не існує поняття порядку серед самоцвітів, і два самоцвіти одного виду нерозрізнимі. \textbf{1} <= \textbf{F} <= \textbf{500 000} (\textbf{F} -- початкова кількість риб у озері) \textbf{1} <= \textbf{K} <= \textbf{F} (\textbf{K} -- кількість різних видів самоцвітів) \textbf{2} <= \textbf{M} <= \textbf{30 000} \textbf{1} <= \textbf{LX} <= \textbf{1 000 000 000} (\textbf{LX} -- довжина риби \textbf{X}) \InputFile Ваша програма повинна читати зі стандартного вводу наступні дані: \begin{enumerate} \item Рядок \textbf{1} містить ціле число \textbf{F} -- початкову кількість риб у озері. \item Рядок \textbf{2} містить ціле число \textbf{K} -- кількість різних видів самоцвітів. Види самоцвітів подаються числами від \textbf{1} до \textbf{K} включно. \item Рядок \textbf{3} містить ціле число \textbf{M}. \item Кожен з наступних \textbf{F} рядків описує одну рибу, використовуючи \textbf{2} цілих числа, відокремлених одним пропуском: довжину риби і тип самоцвіту, спочатку проковтнутого цією рибою. \end{enumerate} \textbf{Зауваження.} У всіх тестах, що використовуються для оцінки розв'язку, гарантується, що існує хоча б один самоцвіт кожного з \textbf{K} видів. \OutputFile Ваша програма повинна вивести у стандартний вивід єдиний рядок, що містить одне ціле число в межах від \textbf{0} до (\textbf{M-1}) включно -- кількість різних можливих комбінацій самоцвітів по модулю числа \textbf{M}. Слід відмітити, що для розв'язання задачі значення числа \textbf{M} не має ніякого іншого змісту, крім як для спрощення обчислень.
Ліміт часу 9 секунд
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
5
3
7
2 2
5 1
8 3
4 1
2 3
Вихідні дані #1
4