AT_wupc2019_b 10 puzzle

Description

[problemUrl]: https://atcoder.jp/contests/wupc2019/tasks/wupc2019_b 高さ\\(H\\)、幅\\(W\\)のマス目がある。はじめ、\\(i\\)行\\(j\\)列のマスには\\(0\\)以上\\(9\\)以下の数\\(A\_{i,j}\\)が書かれている。マス目中のマスは辺を共有するマスに隣接している。ここで、あるマスの部分集合が「連結」であるとは、集合中の全てのマスのペアについて、集合中の隣接するマスに移動することを繰り返して行き来できることを指す。 カトーくんは以下の操作を\\(0\\)回以上行うことができる。 - ある「連結」なマスの部分集合を選び、集合中のマスに書かれている数の最大値を\\(M\\)とした時、その集合の全てのマスに書かれている数を\\(2 \\times M\\)を\\(10\\)で割ったあまりに書き換える。 カトーくんはマス目の全てのマスに書かれた数を\\(0\\)にすることができるか判定せよ。 また、\\(0\\)にすることができる場合、これを達成するために必要な最小の操作回数を求めよ。

Input Format

入力は以下の形式で標準入力から与えられる。 ``` \(H\) \(W\) \(A_{1,1}\ A_{1,2}\ \dots\ A_{1,W}\) \(A_{2,1}\ A_{2,2}\ \dots\ A_{2,W}\) \(\vdots\) \(A_{H,1}\ A_{H,2}\ \dots\ A_{H,W}\) ```

Output Format

全てのマスに書かれている数を\\(0\\)にすることが可能な場合、以下の形式で`Yes`と最小の操作回数\\(N\\)を出力してください。 ``` Yes \(N\) ``` また、不可能な場合`No`を出力してください。

Explanation/Hint

### 制約 - \\(1 \\leq H,W \\leq 100\\) - \\(0 \\leq A\_{i,j} \\leq 9\\) - 入力される値はすべて整数である。 ### Sample Explanation 1 例えば、全てのマスを集合として選ぶと\\\\(M=5\\\\)となります。\\\\(2 \\\\times M=10\\\\)となり\\\\(10\\\\)で割ったあまりは\\\\(0\\\\)であるため、全てのマスの数を\\\\(0\\\\)に書き換えます。よって、\\\\(1\\\\)回の操作で目的を達成することができました。 ### Sample Explanation 2 どのように操作を行っても目的を達成できません。 ### Sample Explanation 3 例えば、はじめに\\\\(6\\\\)が書かれている全てのマスを集合として選び(これは「連結」です)これに対して操作を行った後、全てのマスを集合として選び操作を行うと\\\\(2\\\\)回の操作で目的を達成できます。