Dragica là đội trưởng của một đội bowling bán chuyên ở địa phương. Cô ấy cũng là một người đầu bếp tâm huyết và có thể được coi là một trong những người giải ô chữ tốt nhất ở Croatia. Một ô chữ sẽ là một bảng ~N \times M~ ô vuông, trong đó ~N~ là số hàng và ~M~ là số cột. Một số ô vuông được để trống (và người chơi cần phải điền chữ vào ô vuông đó bằng cách giải), và một số ô vuông được tô màu. Những ô vuông được tô màu chứa tối đa ~2~ câu hỏi - một câu nằm ngang và một ô nằm dọc. Đáp án cho hai câu hỏi được viết ở các ô vuông trống đến khi đến cạnh hoặc đến một ô được tô màu.
Chẳng hạn, xét hình dưới đây:
Các ô được đánh số là các ô bắt đầu ít nhất một câu hỏi. Như các bạn thấy, có những ô có hai câu hỏi (chẳng hạn như ~10~ và ~12~), một câu hỏi (chẳng hạn như ~8~, ~13~), hoặc không câu nào (những câu không được đánh số)
Đáp án cho câu hỏi nằm ngang ở ô chứa số ~14~ sẽ là những ô nằm ở bên phải ô chứa số ~14~ đến trước ô chứa số ~15~, cụ thể là những ô có chữ ~X~ màu xanh lá cây
Đáp án cho câu hỏi nằm ngang ở ô chứa sô ~10~ sẽ là những ô nằm ở bên phải ô chứa số ~10~ đến hết hàng (chạm cạnh), cụ thể là những ô có chữ ~X~ màu vàng
Đáp án cho câu hỏi nằm dọc ở ô chứa số ~17~ sẽ là những ô nằm phía dưới ô chứa số ~17~ đến trước ô chứa số ~23~, cụ thể là những ô có chữ ~X~ màu xanh nước biển
Đáp án cho câu hỏi nằm dọc ở ô chứa số ~21~ sẽ là những ô nằm phía dưới ô chứa số ~21~ đến hết cột (chạm cạnh), cụ thể là những ô có chữ ~X~ màu đỏ
(Lưu ý: Các số ở đây chỉ nhằm mục đích giải thích, trong input thực tế không có những số này)
Một ô được tô màu chứa một câu hỏi theo chiều ngang nếu ô vuông bên phải của nó tồn tại và trống. Tương tự, một ô được tô màu chứa một câu hỏi theo chiều dọc nếu ô vuông bên dưới của nó tồn tại và trống. Dragica biết hết tất cả các câu trả lời cho các câu hỏi, nhưng vì lười nên cô ấy muốn đọc và trả lời càng ít câu hỏi càng tốt. Hãy giúp cô ấy.
Input
Dòng đầu tiên chứa 2 sô nguyên ~N~ và ~M~ ~(2 \le N, M \le 500)~
Mỗi dòng trong N dòng tiếp theo chứa M kí tự 0
hoặc 1
0
là ô trống1
là ô được tô màu Input đảm bảo dòng/cột đầu tiên chứa toàn kí tự1
, và có ít nhất một kí tự0
Output
Dòng đầu tiên chứa ~X~ là số câu hỏi ít nhất
Mỗi dòng trong ~X~ dòng tiếp theo chứa một câu hỏi cần được trả lời.
Câu hỏi có dạng ~R~ ~C~ ~direction~
- ~R~ là chỉ số hàng
- ~C~ là chỉ số cột
- ~direction~ là hướng của câu hỏi:
DESNO
(bên phải trong tiếng Croatia) nếu Dragica nên trả lời câu hỏi theo chiều ngang, hoặcDOLJE
(bên dưới trong tiếng Croatian) nếu Dragica nên trả lời câu hỏi theo chiều dọc
Sample Input 1
4 5
11111
10000
10000
10000
Sample Output 1
3
2 1 DESNO
3 1 DESNO
4 1 DESNO
Sample Input 2
6 4
1111
1011
1000
1011
1010
1000
Sample Output 2
4
1 2 DOLJE
4 4 DOLJE
5 3 DOLJE
3 1 DESNO
Sample Input 3
9 8
11111111
10000000
10001000
10010001
11100001
10100110
10001000
10100001
10010001
Sample Output 3
14
5 2 DOLJE
5 8 DOLJE
8 3 DOLJE
2 1 DESNO
3 1 DESNO
3 5 DESNO
4 1 DESNO
4 4 DESNO
5 3 DESNO
6 3 DESNO
7 1 DESNO
7 5 DESNO
8 3 DESNO
9 4 DESNO
Nếu có nhiều đáp án, bạn có thể in ra đáp án bất kì
Subtask
- ~30\%~ số test có nhiều nhất 9 ô vuông có số
1
- ~35\%~ số test tiếp theo có ~N \le 500~ và ~M \le 10~
- ~35\%~ số test còn lại không có điều kiện gì thêm
Note
Nếu bạn chỉ in ra đáp số mà không in ra được solution, bạn sẽ được 50% số điểm
Comments