|시간 제한||메모리 제한||제출||정답||맞은 사람||정답 비율|
|1 초||64 MB||2||2||2||100.000%|
Librarian Jurica has N shelves in his library, and each shelf can contain M books. Jurica is a good librarian so he decided to make an inventory in the library and, if it’s necessary, return the books that aren’t in their place to their right place. He moves the books in the following way:
Careful Jurica can’t move books if he has a book in his hands. Additionally, he can’t take more than one book at once.
Jurica has been having back pains ever since he had to move all the volumes of the printed edition of Wikipedia from the first to the second floor so now he wants to put all the books in place with as little lifting as possible because his back is hurting. What is the minimal number of lifting he needs?
The first line of input contains the integers N and M (1 ≤ N ≤ 1 000, 1 ≤ M ≤ 1 000).
Each of the following N lines contains M integers, the ith line describing the current state of the ith shelf.
Number 0 denotes an empty place on the shelf, and a number different than 0 denotes that there is a book in that place denoted with that number. All books are denoted with different numbers from 1 to K, where K is the total number of books on the shelves. After that, an additional N lines follow, each containing M integers, the ith line describing the wanted state of the ith shelf.
In the initial and final state of the shelves, the same books will appear.
The first and only line of output must contain the required minimal number of lifting or -1 if it is impossible to arrange the books in the aforementioned way.
2 4 1 0 2 0 3 5 4 0 2 1 0 0 3 0 4 5
3 3 1 2 3 4 5 6 7 8 0 4 2 3 6 5 1 0 7 8
2 2 1 2 3 4 2 3 4 1
Clarification of the first example: Jurica will move book 1 one place to the right, then lift book 2 and move it over to the first place of the first shelf. He lifts book 5 and places it on the fourth place on the second shelf.