Задачі
Лижні гонки
Лижні гонки
\includegraphics{https://static.e-olymp.com/content/06/064055d654d2e12ba1e22802d116bf89bc2e2a71.jpg}
Міжнародна федерація лижного спорту постійно працює у напрямку підвищення видовищності лижних гонок. За останні декілька років було придумано і опробовано багато дисциплін -- спринтерські гонки, масстарти, гонки з переобуванням лиж і т.д. Більша частина з них вже була представлена на олімпіаді у Ванкувері. Невід'ємним ефектом підвищення видовищності є збільшення контактної боротьби безпосередньо на трасі, як це відбувається у спринті і масстарті. Для таких гонок дуже важливий момент старту, зокрема розміщення спортсменів.
До олімпіади в Сочі вирішено опробувати нову схему розміщення спортсменів на стартовому полі. Як і раніше, лижники розміщуються у декілька колон, вирівняних по стартовій лінії. Але тепер кількість учасників у кожній з колон визначається регламентом змагань. Кріме того, лижники з однієї країни не можуть:
\begin{itemize}
\item Заходитись в одній колоні.
\item Знаходитись в одному ряду, якщо між ними вся частина ряду зайнята іншими лижниками (або вони знаходяться у сусідніх колонах). якщо хоча б одне місце вільне, вони можуть розміщуватись в одному ряду.
\end{itemize}
Федерація лижного спорту просить вас написати програму, яка визначає, скількоми способами можна розставити на старті \textbf{K} спортсменів однієї країни?
\InputFile
У першому рядку записані цілі числа \textbf{N} і \textbf{K} (\textbf{1} ≤ \textbf{N}, \textbf{K} ≤ \textbf{400}). У другому рядку записано \textbf{N} додатніх чисел через пропуск -- опис стартових колон. \textit{\textbf{i}}-е число вказує кількість чоловік в \textit{\textbf{i}}-ій колоні. Числа не перевищують \textbf{1000000}.
\OutputFile
Необхідно вивести єдине число -- кількість способів. Число вивести по модулю \textbf{10^9+7}.
Вхідні дані #1
3 3 2 1 3
Вихідні дані #1
2