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 $ ) - 入力は全て整数