運河 (Canal)

아직 제출이 없습니다시간 제한2초메모리 제한1024 MB

문제

JOIG 王国は HW 列のマス目に区切られた長方形の形をしている.上から i 行目 (1 ≦ i ≦ H),左から j 列目 (1 ≦ j ≦ W) のマスをマス (i,j) と呼ぶ.

各マスには標高と呼ばれる整数が定まっている.マス (i,j) の標高は Ai,j である.

JOIG 王国では,王国を縦断する運河を建設することにした.運河の建設は,以下のように行われる.

  • ある整数 k (1 ≦ k < W) を定める.左から k 列目と k+1 列目の間に,王国の上端から下端まで縦断する運河を建設する.

運河を横切らず,辺で接している標高が同じマスへの移動を繰り返すことで相互に移動できるマスの集まりをここでは平地と呼ぶ.国土を管理しやすくするため,平地の個数ができるだけ少なくなるように運河の建設位置を決めたい.

JOIG 王国の地形の情報が与えられたとき,運河を建設した後の JOIG 王国内の平地の個数としてありうる最小値を求めるプログラムを作成せよ.

입력

入力は以下の形式で与えられる.

H W
A1,1 A1,2 … A1,W
A2,1 A2,2 … A2,W
:
AH,1 AH,2 … AH,W

출력

運河を建設した後の JOIG 王国内の平地の個数としてありうる最小値を出力せよ.

제한

  • H ≧ 1
  • W ≧ 2
  • H × W ≦ 500 000
  • 1 ≦ Ai,j ≦ 109 (1 ≦ i ≦ H1 ≦ j ≦ W).
  • 入力される値はすべて整数である.