AT_stpc2025_2_m Take K
Description
$ H $ 行 $ W $ 列のマス目があります。上から $ i $ 行目、左から $ j $ 列目のマスをマス $ (i,j) $ と表します。
各マスは障害物が置かれたマスか、黒く塗られたマスか、白く塗られたマスのいずれかです。マスの状態は $ H $ 個の長さ $ W $ の文字列 $ S_1,S_2,\dots,S_H $ によって与えられ、 $ S_i $ の $ j $ 文字目が `#` のときマス $ (i,j) $ には障害物が置かれていて、 `B` のときマス $ (i,j) $ は黒く、 `W` のときマス $ (i,j) $ は白く塗られています。
あなたは好きな **黒く塗られたマス** を $ 1 $ つ選び、そこから移動を繰り返します。 $ 1 $ 回の移動で今いるマスから上下左右に隣接する、黒く塗られたマスか白く塗られたマスに移動することができます。
以下の条件を満たしながら $ 10^{100} $ 回移動することができるかどうか判定してください。
- $ x\ (1 \leq x \leq 10^{100}) $ 回目の移動の後にいるマスは、 $ x \equiv 0 \pmod K $ のとき黒く、 $ x \not\equiv 0 \pmod K $ のとき白く塗られている
Input Format
入力は以下の形式で与えられる。
> $ H $ $ W $ $ K $ $ S_1 $ $ S_2 $ $ \vdots $ $ S_H $
Output Format
条件を満たしながら $ 10^{100} $ 回移動することができるなら `Yes` を、そうでないなら `No` を出力せよ。
Explanation/Hint
### Sample Explanation 1
マス $ (1,1) $ を選び、移動を開始します。 $ (1,1) \rightarrow (1,2) \rightarrow (1,3) \rightarrow (1,2) \rightarrow (1,3) \rightarrow (2,3) \rightarrow (1,3) \rightarrow (1,2) \rightarrow (1,3) \rightarrow \cdots $ と移動していくと、条件を満たしながら $ 10^{100} $ 回移動することができます。
### Constraints
- $ H, W, K $ は整数
- $ 1 \leq H, W $
- $ H \times W \leq 10^6 $
- $ 2 \leq K \leq 10^9 $
- $ S_i $ は `#`, `B`, `W` からなる長さ $ W $ の文字列
- $ S_1,S_2,\dots,S_H $ のうち少なくとも $ 1 $ つは `B` を含む