D. Радужные прямоугольники
ограничение по времени на тест
4 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Shrimpy Duc это пухлый и жадный мальчик, который всегда голоден. После бесчисленных попыток найти еду, чтобы утолить его нескончаемый голод, Shrimpy Duc нашел конфеты M&M, лежащие на поле $$$L \times L$$$. Есть $$$n$$$ конфеток M&M на этом поле, $$$i$$$-я из них находится в точке $$$(x_i + 0.5, y_i + 0.5),$$$ и имеет цвет $$$c_i$$$, один из возможных $$$k$$$ цветов (размерами M&Ms можно пренебречь).

Shrimpy Duc хочет украсть прямоугольник M&Ms, а именно, он хочет выбрать прямоугольник с целочисленными координатами внутри поля, и украсть все M&Ms в нем. Ему необязательно красть все конфеты, однако, он хочет украсть хотя бы одну конфету каждого цвета.

Иначе говоря, он хочет посчитать количество таких прямоугольников, в которых левая нижняя вершина находится в $$$(X_1, Y_1)$$$, правая верхняя в $$$(X_2, Y_2)$$$, они являются точками с целочисленными координатами, удовлетворяющие условиям $$$0 \le X_1 < X_2 \le L$$$ и $$$0 \le Y_1 < Y_2 \le L$$$, что для каждого $$$1 \le c \le k$$$ существует хотя бы одна M&M с цветом $$$c$$$, которая лежит в этом прямоугольнике.

Сколько существует таких прямоугольников? Это число может быть большим, так что вам достаточно найти его по модулю $$$10^9 + 7$$$.

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

В первой строке записаны три целых числа $$$n, k, L$$$ $$$(1 \leq k \leq n \leq 2 \cdot 10^3, 1 \leq L \leq 10^9 )$$$ — количество M&Ms, количество цветов, и размер поля, соответственно.

Каждая из следующих $$$n$$$ строк описывает M&Ms. В каждой строке записано три целых числа $$$x_i, y_i, c_i$$$ $$$(0 \leq x_i, y_i < L, 1 \le c_i \le k)$$$ — координаты и цвет $$$i$$$-й M&M, соответственно.

Разные M&Ms имеют разные координаты ($$$x_i \ne x_j$$$ или $$$y_i \ne y_j$$$ для всех $$$i \ne j$$$), и для каждого $$$1 \le c \le k$$$ есть хотя бы одна M&M с цветом $$$c$$$.

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

Выведите одно целое число — количество прямоугольников, удовлетворяющих условиям Shrimpy Duc, по модулю $$$10^9 + 7$$$.

Примеры
Входные данные
4 2 4
3 2 2
3 1 1
1 1 1
1 2 1
Выходные данные
20
Входные данные
5 3 10
6 5 3
5 3 1
7 9 1
2 3 2
5 0 2
Выходные данные
300
Входные данные
10 4 10
5 4 4
0 0 3
6 0 1
3 9 2
8 7 1
8 1 3
2 1 3
6 3 2
3 5 3
4 3 4
Выходные данные
226
Примечание

Поле для первого примера: