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

Задача . B. Duff на пляже


Задача

Темы: дп *2100

Отдыхая на пляже, Duff случайно нашла странный массив b0, b1, ..., bl - 1, состоящий из l положительных целых чисел. Этот массив был странный, потому что он был необычайно длинным, но зато известно, что существует ещё один массив (возможно, короче), a0, ..., an - 1, такой что b построен из a по фомуле: bi = ai mod n, где a mod b обозначает остаток деления a на b.

Duff очень хочется узнать число подпоследовательностей b, обладающих следующими свойствами. Пусть bi1, bi2, ..., bix (0 ≤ i1 < i2 < ... < ix < l) — подпоследовательность. Должны быть выполнены следующие свойства:

  • 1 ≤ x ≤ k
  • Для каждого 1 ≤ j ≤ x - 1,
  • Для каждого 1 ≤ j ≤ x - 1, bij ≤ bij + 1, то есть эта последовательность неубывающая.

Так как это число может быть достаточно большим, девушке хочется узнать его остаток от деления на 109 + 7.

Duff не программист, а Malek сейчас недоступен. Итак, она попросила Вашей помощи. Пожалуйста, назовите ей это число.

Входные данные

В первой строке ввода записано три целых числа, n, l и k (1 ≤ n, k, n × k ≤ 106 and 1 ≤ l ≤ 1018).

Во второй строке записано n целых чисел через пробел, a0, a1, ..., an - 1 (1 ≤ ai ≤ 109 для каждого 0 ≤ i ≤ n - 1).

Выходные данные

Выведите ответ по модулю 1 000 000 007.

Примечание

В первом тесте . Таким образом, все такие последовательности: , , , , , , , , and .


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

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

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