Taeyang は、次のように $M\times N$ のグリッドに置かれた $MN$ 個の白と黒の石でゲームを始めます。
任意の石 $X$ に対して、上下左右に隣接する $4$ 個の石を $X$ の隣と呼びます。Taeyang は石を 1 個選んで色を変えられます。すると、その石と元の色が同じ隣の石も新しい色に変わります。これを繰り返し、色が変わった石の隣にある、元の色が同じ石も色が変わります。
例えば、上の図の石 $A$ を白に変えると、「ㄷ」の形をした黒い石が白に変わり、次のようになります。
次に石 $C$ を白に変えると、次の図のようになります。
さらに石 $F$ を白に変え、最後に石 $E$ を白に変えると、すべての石が白になります。このように、合計 4 回の色変更ですべての石を白にしました。
しかし、たった 2 回の色変更ですべての石を同じ色にできます。まず石 $B$ を黒に変えると、次のようになります。
すると、石 $A$ を白に変えてすべての石を白にするか、石 $D$ を黒に変えてすべての石を黒にできます。このように、2 回の色変更ですべての石を同じ色にできました。
$M\times N$ のグリッドに白と黒の石が置かれているとき、すべての石を同じ色にするための色変更の最小回数を求めるプログラムを作成してください。
入力
最初の行には、$M\times N$ のグリッドを表す 2 つの正の整数 $M$ と $N$ が空白区切りで与えられます。$M$ と $N$ はともに $2$ 以上 $100$ 以下です。2 行目からの $M$ 行には、各行にグリッドの 1 行を表す $N$ 個の数が空白区切りで与えられ、$0$ は白い石、$1$ は黒い石を表します。
出力
最初の行に、すべての石を同じ色にするための色変更の最小回数を出力してください。
入出力例
入力 1
5 6 1 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 1
出力 1
2