AT_pakencamp_2025_day1_k Good Grid
Description
長さ $ NM $ の数列 $ A $ があり、はじめ各要素の値は $ 0 $ か $ 1 $ です。 この配列に次の操作を好きなだけ行えます。
- $ 1 \leq l \leq r \leq NM $ を満たす整数 $ l, r $ を選び、 $ A_l, A_{l+1}, ... , A_r $ の値を反転させる。
操作の後、 $ A $ が次の条件を満たす必要があります。
- $ 1 \leq i \leq M $ を満たす各 $ i $ について、 $ A_i = A_{i+M} = A_{i+2M} = ... = A_{i+(N-1)M} $ を満たす。
必要な操作回数の最小値を求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $ $ A_1 $ $ A_2 $ $ ... $ $ A_M $ $ A_{M+1} $ $ A_{M+2} $ $ ... $ $ A_{2M} $ $ \vdots $ $ A_{(N-1)M+1} $ $ A_{(N-1)M+2} $ $ ... $ $ A_{NM} $
Output Format
答えを一行に出力せよ。
Explanation/Hint
### Sample Explanation 1
まず、 $ l = 7, r = 7 $ として操作すると次のようになります。
```
1 0 0 1
0 1 1 0
1 1 1 0
```
そして、 $ l = 2, r = 5 $ として操作すると次のようになり、条件を満たします。
```
1 1 1 0
1 1 1 0
1 1 1 0
```
この場合の操作回数は $ 2 $ 回であり、 $ 1 $ 回以下の操作で条件を満たすことはできないので、 $ 2 $ を出力してください。
### Sample Explanation 2
$ 2,4,6 $ 行目の要素を全て反転させるように、
- $ l = 7, r = 12 $
- $ l = 19, r = 24 $
- $ l = 31, r = 36 $
として3回の操作を行うと条件を満たすことができ、これが最小の操作回数です。
### Sample Explanation 3
$ N = 1 $ の場合は常に条件を満たすので、操作を行う必要がありません。この時は $ 0 $ を出力してください。
### Constraints
- $ 1 \leq N,M \leq 2000 $
- $ A_i $ は $ 0 $ か $ 1 $ ( $ 1 \leq i \leq NM $ )
- 入力は全て整数