Визначник булевої матриці#11548

Визначник булевої матриці

3 секунди
256 мегабайтів
Дуже складна

Вам надано останні n - 1 рядків булевої матриці розміром n \times n. Ваше завдання — визначити булеві значення для першого рядка так, щоб r = (\det(A) \pmod{100003}) було максимальним (див. примітки). Вам потрібно вивести лише значення .

Вхідні дані

Перший рядок містить ціле число n~(2 \leq n \leq 400).

Рядки з по містять по чисел кожен: -ий рядок містить числа (або , або ) з -го рядка матриці .

Вихідні дані

Виведіть невід'ємне ціле число r~(0 \le r < 100003).

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading

Примітка

є булевою матрицею тоді і тільки тоді, коли A_{i,j} \in \lbrace 0, 1\rbrace, \forall A_{i, j} \in A

\det(A) = \begin{cases} A_{1,1} \qquad &\text{якщо }\ n = 1 \\ \sum_j(-1)^{1+j}A_{1,j}\det(M_{1,j})&\text{якщо }\ n > 1 \end{cases}

де M_{i,j} — матриця, отримана з видаленням рядка і стовпця, що містить A_{i,j}

X \pmod B = залишок від ділення на B.