Cho hai ma trận \(A\) và \(B\) cùng có kích thước \(m\) dòng và \(n\) cột. Ở mỗi bước, bạn được phép thực hiện một trong hai thao tác sau đây:
- Chọn một chỉ số \(i\) tùy ý \((1\leq i < m)\) và tráo đổi hai hàng \(i\), \(i+1\) của ma trận \(A\).
- Chọn một chỉ số \(j\) tùy ý \((1\leq j < n)\) và tráo đổi hai cột \(j\), \(j+1\) của ma trận \(A\).
Bạn hãy lập trình tính số bước ít nhất để đưa ma trận \(A\) về trạng thái bằng với ma trận \(B\) (nói cách khác, \(A_{ij}=B_{ij}\) với mọi \(i\) và \(j\)).
Input
- Dòng đầu chứa hai số nguyên dương \(m\) và \(n\) \((2\leq m, n\leq 5)\).
- Dòng thứ \(i\) trong \(m\) dòng tiếp theo chứa \(n\) số nguyên không âm mô tả giá trị \(A_{ij}\). Các số đều có giá trị không vượt quá \(10^9\).
- Dòng thứ \(i\) trong \(m\) dòng tiếp theo chứa \(n\) số nguyên không âm mô tả giá trị \(B_{ij}\). Các số đều có giá trị không vượt quá \(10^9\).
Output
- Gồm một số nguyên duy nhất thể hiện số bước tối ưu để đưa ma trận \(A\) về trạng thái bằng với ma trận \(B\). In ra \(-1\) nếu không tồn tại chuỗi thao tác thỏa mãn.
Ví dụ
Sample input 01
4 5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
1 3 2 5 4
11 13 12 15 14
6 8 7 10 9
16 18 17 20 19
Sample output 01
3
Sample input 02
2 2
1 1
1 1
1 1
1 290598
Sample output 02
-1
Sample input 03
3 3
1 8 6
3 5 7
4 2 9
1 8 6
3 5 7
4 2 9
Sample output 03
0