Mountain

Time Limit : 2 sec, Memory Limit : 65536 KB

問題 I

問題文

L 氏はある都市の市長である.L 氏の市長としての手腕はすさまじく時を止め一瞬にして都市中に鉄道網を引いたり,財政の赤字を一夜にして莫大な黒字にしたり,はては巨大な怪獣をどこからともなく呼んでパフォーマンスに使うこともした.

そんな L 氏は土地の隣り合った行または列同士を何度も入れ替えることででこぼこな土地を山形にするという遊びを最近発明した.土地は H×W 個のブロックに区切られており,ブロック (y,x) では海面からの高さが hy,x であると測定されている.入れ替え後のブロック (y,x) の高さを h'y,x と書くことにする.この土地が山形であるとは,以下の図のように,あるブロック (y^*,x^*) があって,そこを山頂として山頂から離れるに従って高さが単調減少しているものをいう.

h'y^*-1, x^*-2<h'y^*-1, x^*-1<h'y^*-1, x^*>h'y^*-1, x^*+1>h'y^*-1, x^*+2
h'y^*, x^*-2<h'y^*, x^*-1<h'y^*, x^*>h'y^*, x^*+1>h'y^*, x^*+2
h'y^*+1, x^*-2<h'y^*+1, x^*-1<h'y^*+1, x^*>h'y^*+1, x^*+1>h'y^*+1, x^*+2

ところで,L 氏はいくらがんばっても山形にできないような土地が存在する気がした.そこで,前もってコンピュータにその土地が山形にできるかどうかをチェックさせることにした.

入力形式

最初の行に HW がスペース区切りで与えられる.

次の H 行に土地の高さが与えられる. 各行は W 個の数値からなり,それぞれ対応する場所の高さを表す.

出力形式

土地を山形にできるなら "YES",できないなら "NO" を出力せよ.

制約

  • 1 ≤ H,W ≤ 1,000
  • 0 ≤ hy,x ≤ 108
  • 全ての hy,x は相異なる.

入出力例

入力例 1

3 3
1 3 2
7 9 8
4 6 5

出力例 1

YES

入力例 2

以下の例では 2 番目の列と 3 番目の列を入れ替えることにより土地を山形にすることができる.

3 3
9 3 6
8 2 5
7 1 4

出力例 2


YES

入力例 3

1 1
100

出力例 3

YES

入力例 4

3 3
1 3 2
4 6 5
7 8 9

出力例 4

NO

謝辞

この問題は京都市の周りに山が多いことから作られた.よって京都市の周りの山に感謝の意を表する.
Source: Kyoto University Programming Contest 2011 , Kyoto, Japan, 2011-08-06
Problem Setter:  Yuichi Yoshida, Shingo Mori ,  Tester: Mitsuru Kusumoto
http://www.kupc.jp/2011.html