Олимпиадный тренинг

Задача . Cowmpetency


Задача

Темы:

Фермер Джон нанимает нового вожака стада для своих коров. Для этого он проинтервьюировал \(N\) (\(2 \leq N \leq 10^9\)) коров. Каждому он назначил "уровень компетенции" - число не более \(C\) (\(1 \leq C \leq 10^4\)).

Потому что он провёл много интервью, ФД забыл все эти уровни компетенции. Однако он запомнил \(Q\) (\(1 \leq Q \leq \min(N - 1, 100)\)) пар чисел \((a_i, h_i)\) где \(h_i\) - номер первой коровы, с уровнем компетенции строго большим чем у коров от \(1\) до \(a_i\) (\(1 \leq a_i < h_i \leq N\)).

ФД сказал Вам \(Q\) пар \((a_i, h_i)\). Помогите ему посчитать сколько последовательностей уровней компетенции соответствуют этой информации. Поскольку число очень большое, выводите его по модулю \(10^9 + 7\).

ФОРМАТ ВВОДА (с клавиатуры / stdin):

Первая строка содержит \(N\), \(Q\), \(C\).

Каждая из следующих \(Q\) строк содержит пару \((a_i, h_i)\). Гарантируется, что все \(a_j\) различны.

ФОРМАТВЫВОДА (на экран / stdout):

Количество по модулю \(10^9+7\) последовательностей компетенций, соответствующих информации ФД.


Примеры
Входные данныеВыходные данные
1 6 2 3
2 3
4 5
6

time 500 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя