Задачи
Ночь в библиотеке
Ночь в библиотеке
Однажды летом Вовочка проходил в школьной библиотеке "летнюю практику": чинил учебники, помогал библиотекарям сортировать книги по отделам и тому подобное. У Вовочки очень длинный нос, который он вечно сует куда не следует, и библиотечные книги не стали исключением.
В одной из книг он увидел следующее:
… обозначаемый через \textbf{D(M)} --- кососимметричная полилинейная нормированная функция столбцов квадратной матрицы, т.е.:
1. Если поменять местами два столбца матрицы, его значение меняет знак:
\includegraphics{https://static.e-olymp.com/content/a0/a031c2b2930ecd819e6b6b75a350e838bfa9305c.jpg}
2. Если один из столбцов матрицы является линейной комбинацией двух векторов, то линейную комбинацию можно вынести:
\includegraphics{https://static.e-olymp.com/content/b8/b8616ee71d2610de4c268e928a96788f955a4af8.jpg}
3. Для единичной матрицы он равен единице:
\includegraphics{https://static.e-olymp.com/content/a2/a25a5ac5cd01aaada9556f8e848775270b72b95e.jpg}
Докажем, что такая функция единственна:
… (\textit{Вовочка читает книги обрывками}) …
… например, методом исключения Гаусса.
… (\textit{иногда совсем маленькими}) …
… матрица \textbf{X} является произведением столбца \textbf{u} на строку \textbf{v}, т.е.:
\includegraphics{https://static.e-olymp.com/content/73/73ff9bcc17c241bd4ac8c9ae465969e0f45df9dd.jpg}
Вовочку очень заинтересовало то, что он прочитал. Поскольку Вовочка увлекается олимпиадным программированием (т.е. зависает на сайте "Кодефорсес"), то матрицы и векторы ему не страшны. Однако с математикой у него туго.
Он хочет посчитать значение описанной кососимметричной полилинейной нормированной функции \textbf{D} для матрицы \textbf{X}, определённой в последнем отрывке. Для простоты все элементы векторов \textbf{u} и \textbf{v} являются целыми числами. Что-то подсказывает Вовочке, что ответ также будет целым. Ну а поскольку есть подозрения, что ответ может быть очень большим, то Вовочка хочет научиться находить его по модулю простого числа \textbf{P} (просто так принято).
Помогите Вовочке решить задачу. Иначе спам на вышеупомянутом сайте обеспечен.
\InputFile
Первая строка содержит два целых числа \textbf{N} и \textbf{P} (\textbf{1} ≤ \textbf{N} ≤ \textbf{100}, \textbf{2} ≤ \textbf{P} ≤ \textbf{2·10^9}). Гарантируется, что \textbf{P} --- простое число. Вторая строка содержит \textbf{N} целых чисел \textbf{u_1}, \textbf{u_2}, …, \textbf{u_n} --- элементы вектора-столбца \textbf{u}, а третья строка содержит\textbf{N} целых чисел \textbf{v_1}, \textbf{v_2}, …, \textbf{v_n} --- элементы вектора-строки \textbf{v} (\textbf{0} ≤ \textbf{u_i}, \textbf{v_j} < \textbf{P}).
\OutputFile
Требуется вывести одно целое число: значение \textbf{D(X)} по модулю \textbf{P}. Число должно быть неотрицательным и строго меньше, чем \textbf{P}.
Входные данные #1
3 11 0 7 8 10 5 3
Выходные данные #1
0