Mirko 在街上發現了一塊由 $R \times S$ 個方格(單位正方形)組成的板子,這些方格排列成 $R$ 列與 $S$ 行。當 Mirko 發現這塊板子時,所有的方格都是白色的。Mirko 決定將其中一些方格塗成黑色。完成後,他將這塊板子連同以下訊息一起寄給了他的朋友 Slavko:
「親愛的 Slavko,我挑戰你找出最少數量的矩形來覆蓋所有的黑色方格。同時,任何白色方格都不能被矩形覆蓋,任何黑色方格都不能被兩個或多個矩形覆蓋,且任何矩形都不能超出板子的邊界。」
正如你可能已經猜到的,Slavko 無法應對這個挑戰,因此他請求你的幫助。
輸入格式
第一行包含自然數 $R$ 和 $S$,代表 Mirko 板子的尺寸。 接下來的 $R$ 行中,每一行包含 $S$ 個字元,代表 Mirko 板子的方格。更精確地說,字元 ‘B’ 代表白色方格,字元 ‘C’ 代表黑色方格。
輸出格式
在輸出的每一行中,需要列印 $S$ 個以空格分隔的數字,代表 Mirko 挑戰的解。 被第一個矩形覆蓋的方格在輸出中應標記為 1,被第二個矩形覆蓋的方格應標記為 2,依此類推,直到最後一個第 $N$ 個矩形,其覆蓋的方格標記為 $N$。未被任何矩形覆蓋的方格(即白色方格)應標記為 0。
子任務
如果你的解違反了題目敘述中的任何條件,該測試資料將獲得 0 分。 如果你的解正確覆蓋了所有黑色方格,但沒有使用最少數量的矩形,則該測試資料將獲得: $$0.75 \cdot (A / B)^{10} \cdot X$$ 分,其中 $A$ 代表最佳矩形數量,$B$ 代表你解中的矩形數量,$X$ 代表該測試資料的總分。 當然,如果你的解正確覆蓋了所有黑色方格並使用了最少數量的矩形,你將獲得該測試資料的所有分數。
| 測試資料 | 分數 | 額外限制 |
|---|---|---|
| 1. – 5. | 25 | $1 \le R, S \le 26$ |
| 6. – 10. | 25 | $1 \le R, S \le 100$ |
| 11. – 15. | 25 | $1 \le R, S \le 250$ |
| 16. – 20. | 25 | $1 \le R, S \le 500$ |
範例
輸入格式 1
4 5 CCBCB CCBBB CCCBB CCCBB
輸出格式 1
1 1 0 2 0 1 1 0 0 0 3 3 3 0 0 3 3 3 0 0
輸入格式 2
7 5 CCCBB BCBBB BCCCB BCCCB CCCCC BBBBB BCCCB
輸出格式 2
1 1 1 0 0 0 2 0 0 0 0 3 3 3 0 0 3 3 3 0 4 4 4 4 4 0 0 0 0 0 0 5 5 5 0
輸入格式 3
5 11 BBCCCBCCCBC BCCBCBBCCCC CCCCBCCCCCC BCBCCCBCCCB CCCCBCBBCCB
輸出格式 3
0 0 1 1 1 0 2 2 2 0 3 0 4 4 0 5 0 0 6 6 6 3 7 7 7 7 0 8 8 6 6 6 3 0 9 0 10 10 10 0 6 6 6 0 11 11 11 11 0 12 0 0 13 13 0