AT_agc021_c [AGC021C] Tiling

Description

[problemUrl]: https://atcoder.jp/contests/agc021/tasks/agc021_c 高橋君は、縦 $ N $ マス横 $ M $ マスのマス目を持っています。 次の条件をすべて満たすように、縦 $ 1 $ マス横 $ 2 $ マスのタイル $ A $ 枚と、縦 $ 2 $ マス横 $ 1 $ マスのタイル $ B $ 枚を マス目に置くことができるかどうかを判定し、可能なら置き方をひとつ構成してください。 - マス目の上に、全てのタイルを置かなければならない。 - タイルはマス目からはみ出してはならず、また異なるタイル同士が重なってはならない。 - マス目やタイルを回転させてはならない。 - 全てのタイルは、マス目のちょうど $ 2 $ マスを完全に覆う。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ M $ $ A $ $ B $

Output Format

タイルを全て置くことができない場合、`NO` を出力せよ。 そうでない場合、以下のように出力せよ。 > YES $ c_{11}...c_{1M} $ $ : $ $ c_{N1}...c_{NM} $ ただし、$ c_{ij} $ はマス目の $ i $ 行 $ j $ 列目の状態を表し、文字 `.`,``,`^`,`v` のいずれかでなければならない。 $ c_{ij} $ が、 - `.` のとき、マス目の $ i $ 行 $ j $ 列目はタイルで覆われていないことを、 - `` のとき、マス目の $ i $ 行 $ j $ 列目は縦 $ 1 $ マス、横 $ 2 $ マスのタイルの右半分で覆われていることを、 - `^` のとき、マス目の $ i $ 行 $ j $ 列目は縦 $ 2 $ マス、横 $ 1 $ マスのタイルの上半分で覆われていることを、 - `v` のとき、マス目の $ i $ 行 $ j $ 列目は縦 $ 2 $ マス、横 $ 1 $ マスのタイルの下半分で覆われていることを、 それぞれ表す。

Explanation/Hint

### 制約 - $ 1\ \leq\ N,M\ \leq\ 1000 $ - $ 0\ \leq\ A,B\ \leq\ 500000 $ - $ N,M,A,B $ は整数である ### Sample Explanation 1 縦 $ 3 $ マス横 $ 4 $ マスのマス目に、縦 $ 1 $ マス横 $ 2 $ マスのタイル $ 4 $ 枚と、縦 $ 2 $ マス横 $ 1 $ マスのタイル $ 2 $ 枚を置く方法の一例として、 出力例のようなものがあります。