Вам дана матрица \(a\), состоящая из \(n\) строк и \(m\) столбцов. Каждый элемент матрицы равен \(0\) или \(1\).
Вы можете выполнять следующую операцию любое количество раз (возможно, ни одного): выбрать элемент матрицы и заменить его на \(0\) или \(1\).
Также вам даны два массива \(A\) и \(B\) (длиной \(n\) и \(m\) соответственно). После выполнения операций матрица должна удовлетворять следующим условиям:
- количество единиц в \(i\)-й строке матрицы должно быть ровно \(A_i\) для каждого \(i \in [1, n]\).
- количество единиц в \(j\)-м столбце матрицы должно быть ровно \(B_j\) для каждого \(j \in [1, m]\).
Вычислите минимальное количество операций, которое вам нужно выполнить.
Выходные данные
Выведите одно целое число — минимальное количество операций, которые вам нужно выполнить, или -1, если это невозможно.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
3 3 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
|
3
|
|
2
|
3 3 1 1 1 1 1 1 1 1 1 3 2 1 1 2 3
|
3
|
|
3
|
2 2 0 0 0 0 1 2 0 1
|
-1
|