小红的开关灯
题号:NC313685
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}小红有两个 n \times m 的灯阵 AB,每个灯的状态用 \texttt{0}(灭)和 \texttt{1}(亮)表示。她希望将灯阵 A 变得与灯阵 B 完全相同,为此她可以对灯阵 A 做任意次如下操作:
\hspace{23pt}\bullet 操作一:选择任意两个上下或左右相邻的灯,反转他们的状态(即 \texttt{0}\texttt{1}\texttt{1}\texttt{0})。操作代价为 0
\hspace{23pt}\bullet 操作二:选择任意一个灯,反转他的状态(即 \texttt{0}\texttt{1}\texttt{1}\texttt{0})。操作代价为 1
\hspace{15pt}小红想知道,最少需要花费多少代价才能使两个灯阵相同,请你帮帮她。

输入描述:

\hspace{15pt}第一行输入两个整数 n,m\left(1 \leqq n,m \leqq 500 \right)
\hspace{15pt}之后的 n 行,每行输入 m 个字符 \texttt{0}\texttt{1},代表灯阵 A
\hspace{15pt}之后的 n 行,每行输入 m 个字符 \texttt{0}\texttt{1},代表灯阵 B

输出描述:

\hspace{15pt}输出一个整数,代表最小代价。
示例1

输入

复制
2 2
01
10
10
01

输出

复制
0