Задача E. Чокопай

Автор:Евгений Татаринов   Ограничение времени:1 сек
Входной файл:Стандартный вход   Ограничение памяти:256 Мб
Выходной файл:Стандартный выход  

Условие

На дурацкую олимпиаду по программированию пришло n команд, в каждой команде по 3 человека. Как и на всех дурацких олимпиадах, организаторы решили раздать командам чокопай! У них есть m различных видов чокопая, i-го вида чокопая у организаторов ai штук.

Организаторы хотят раздать чокопай каждой команде таким образом, чтобы никто в команде между собой не поссорился и чтобы каждому участнику команды досталось то же самое множество чокопаев, что и его сокомандникам (более формально, для любого i-го вида у каждого участника команды должно быть одинаковое количество чокопаев i-го вида). Но при этом организаторы не следят за тем, чтобы у каких-либо двух команд был одинаковый набор чокопаек (к примеру, организаторы могут хоть все угощения отдать одной команде и оставить все остальные команды с пустыми руками, могут раздать всем командам чокопай, а могут вообще никому ничего не давать).

Помогите организаторам! Сообщите количество способов раздать чокопай таким образом, чтобы никакие два сокомандника не поссорились между собой.

Формат входных данных

В первой строке вводятся натуральные числа n и m — количество команд и количество видов чокопая (1 ≤ n, m ≤ 105). Во второй строке вводятся последовательность целых чисел ai (0 ≤ ai ≤ 105).

Формат выходных данных

Выведите ответ на задачу по модулю 109 + 7.

Примечание

В первом примере раздать чокопай можно следующими способами:

  1. Первой команде 3 чокопайки 1-го вида и 3 чокопайки 2-го вида, второй команде 0 чокопаек 1-го вида и 0 чокопаек 2-го вида;
  2. Первой команде 3 чокопайки 1-го вида и 0 чокопаек 2-го вида, второй команде 0 чокопаек 1-го вида и 3 чокопайки 2-го вида;
  3. Первой команде 0 чокопаек 1-го вида и 3 чокопайки 2-го вида, второй команде 3 чокопайки 1-го вида и 0 чокопаек 2-го вида;
  4. Первой команде 0 чокопаек 1-го вида и 0 чокопаек 2-го вида, второй команде 3 чокопайки 1-го вида и 3 чокопайки 2-го вида;
  5. Первой команде 0 чокопаек 1-го вида и 0 чокопаек 2-го вида, второй команде 0 чокопаек 1-го вида и 0 чокопаек 2-го вида;
  6. Первой команде 0 чокопаек 1-го вида и 3 чокопайки 2-го вида, второй команде 0 чокопаек 1-го вида и 0 чокопаек 2-го вида;
  7. Первой команде 3 чокопайки 1-го вида и 0 чокопаек 2-го вида, второй команде 0 чокопаек 1-го вида и 0 чокопаек 2-го вида;
  8. Первой команде 0 чокопаек 1-го вида и 0 чокопаек 2-го вида, второй команде 3 чокопайки 1-го вида и 0 чокопаек 2-го вида;
  9. Первой команде 0 чокопаек 1-го вида и 0 чокопаек 2-го вида, второй команде 0 чокопаек 1-го вида и 3 чокопайки 2-го вида.

Примеры тестов

Стандартный вход Стандартный выход
1
2 2
3 3
9

0.051s 0.011s 13