atcoder#ABC285G. [ABC285G] Tatami

[ABC285G] Tatami

配点 : 600600

問題文

HH マス、横 WW マスのグリッドがあります。上から ii 行目、左から jj 列目のマスをマス (i,j)(i,j) と呼びます。

このグリッドを縦 11 マス ×\times11 マスのタイルと縦 11 マス ×\times22 マスのタイルで、重ならないように、隙間ができないように覆います(タイルは回転してもよい)。

各マスには 1, 2, ? のいずれかが書かれています。マス (i,j)(i,j) に書かれている文字は ci,jc_{i,j} です。 1 が書かれたマスは 1×11\times 1 のタイルで、2 が書かれたマスは 1×21\times 2 のタイルで覆わなければなりません。? が書かれたマスはどちらのタイルで覆っても構いません。

そのようなタイルの置き方があるかどうか判定してください。

制約

  • 1H,W3001 \leq H,W \leq 300
  • H,WH,W は整数
  • ci,jc_{i,j}1, 2, ? のいずれか

入力

入力は以下の形式で標準入力から与えられる。

HH WW

c1,1c1,2c1,Wc_{1,1}c_{1,2}\ldots c_{1,W}

\vdots

cH,1cH,2cH,Wc_{H,1}c_{H,2}\ldots c_{H,W}

出力

問題文中の条件を満たすタイルの置き方が存在するなら Yes、存在しないなら No と出力せよ。

3 4
2221
?1??
2?21
Yes

例えば以下のようなタイルの置き方で条件を満たすことができます。

3 4
2?21
??1?
2?21
No

条件を満たすようなタイルの置き方は存在しません。

5 5
11111
11111
11211
11111
11111
No