在本题中,二进制矩阵是指所有元素均为 0 或 1 的矩阵。如果一个二进制矩阵的行和列满足以下性质,则称其为带状二进制矩阵:
- 每一行至少有一个 1。
- 每一列至少有一个 1。
- 每一行中的所有 1 都是连续的。
- 对于第 $i$ 行,如果 $s_i$ 是该行中 1 出现的最左侧列索引,$t_i$ 是该行中 1 出现的最右侧列索引,则对于 $i > 1$,必须满足 $s_i \ge s_{i-1}$ 且 $t_i \ge t_{i-1}$。
检测带状二进制矩阵是生物学、古生物学和语言学等多个领域中用于挖掘数据集聚类的重要方法。不幸的是,一个名为“纯粹欺诈者不道德卡特尔”(ICPC)的组织决定做一件不可思议的事情:篡改数据!ICPC 希望展示他们突破性的科学成果,但科学界不会认真对待他们的结果,因为他们的矩阵可能不是带状的。为了获得可发表的结果,他们想要翻转一些单元格,使得他们的数据成为带状二进制矩阵。
ICPC 给你提供了他们的原始数据,表示为一个二进制矩阵。他们想要翻转一些单元格(即把 0 变成 1,或者把 1 变成 0),使得结果矩阵成为上述定义的带状二进制矩阵。将给定矩阵转换为带状二进制矩阵所需的最少翻转次数是多少?
输入格式
输入的第一行包含两个整数 $r$ 和 $c$ ($1 \le r \times c \le 2 \cdot 10^5$),表示矩阵的维度。矩阵有 $r$ 行和 $c$ 列。
接下来的 $r$ 行,每行包含一个长度为 $c$ 的二进制数字字符串,表示该矩阵。
输出格式
输出一个整数,表示将输入矩阵转换为带状二进制矩阵所需翻转的最少单元格数量。
样例
样例输入 1
3 4 1100 0101 0011
样例输出 1
1