На день рождения Маше как обычно подарили массив $$$a$$$ из $$$n$$$ натуральных чисел, в котором каждое число находится в пределах от $$$1$$$ до $$$m$$$ включительно. Маша очень любит число три, поэтому длина массива делится на три.
Маша решила объединять числа в тройки: каждая тройка чисел должна состоять или из трех одинаковых чисел, или из трех последовательных чисел. Другими словами, каждая тройка имеет или вид $$$(x, x, x)$$$, или $$$(x, x+1, x+2)$$$, где $$$x$$$ — какое-то натуральное число.
Маша хочет поиграть с подаренным массивом, и ее интересует количество способов разбить числа этого массива на такие тройки. Два способа разбиения считаются различными, если нельзя установить взаимно-однозначное соответствие между тройками первого разбиения и тройками второго разбиения, что числа внутри соответствующих троек равны. Так как количество разбиений может быть большим, Маше достаточно знать его остаток по модулю $$$10^9+7$$$.
Помогите Маше посчитать количество способов разбить числа подаренного ей массива на тройки по модулю $$$10^9+7$$$.
Первая строка входных данных содержит два целых числа $$$n$$$ и $$$m$$$ ($$$1 \le n \le 5000$$$, $$$1 \le m \le 5000$$$, $$$n=3\cdot k$$$ для какого-то натурального $$$k$$$).
Вторая строка содержит $$$n$$$ целых чисел $$$a_i$$$ — числа массива ($$$1 \le a_i \le m$$$).
В единственной строке одно число — количество способов разбить числа массива на тройки по модулю $$$10^9+7$$$.
Баллы за каждую подзадачу начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены
| |c|c|} Подзадача | Баллы | Дополнительные ограничения | Необходимые подзадачи | Информация о проверке |
| 1 | 10 | $$$m \le 3$$$ | первая ошибка | |
| 2 | 8 | $$$m \le 4$$$ | 1 | первая ошибка |
| 3 | 10 | каждое число от $$$1$$$ до $$$m$$$ | ||
| встречается не более двух раз | первая ошибка | |||
| 4 | 12 | массив $$$a$$$ не содержит чисел, | ||
| которые делятся на $$$4$$$ | 1 | первая ошибка | ||
| 5 | 29 | $$$n \leqslant 500$$$, $$$m \leqslant 500$$$ | первая ошибка | |
| 6 | 31 | — | 1, 2, 3, 4, 5 | первая ошибка |
9 43 4 2 4 4 2 3 3 2
2
6 31 2 3 1 2 1
0
В первом примере числа можно разбить на тройки двумя способами: {$$$(2, 2, 2)$$$, $$$(3, 3, 3)$$$, $$$(4, 4, 4)$$$} и {$$$(2, 3, 4)$$$, $$$(2, 3, 4)$$$, $$$(2, 3, 4)$$$}.
| Название |
|---|


