1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include<iostream>
#include<stack>
std::stack<std::pair<char, std::pair<int, char> > > s;
char arr[2005][2005];
int main()
{
	std::ios_base::sync_with_stdio(false);
	std::cin.tie(0);
	std::cout.tie(0);
	int n, m, k;
	std::cin >> n >> m;
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			std::cin >> arr[i][j];
		}
	}
	// poziome
	int sw = -1;
	while (s.size() != sw) {
		sw = s.size();
		for (int i = 0; i < n; i++) {
			bool f = false;
			char c;
			int j;
			for (j = 1; j < m; j++) {
				if (!f && arr[i][j] != '-') {
					f = true;
					c = arr[i][j];
				}
				if (f) {
					if (arr[i][j] == c || arr[i][j] == '-') {
						continue;
					}
					else {
						break;
					}
				}
			}
			if (j == m && f) {
				s.push({ 'R',{i,c} });
				for (int j = 0; j < m; j++) {
					arr[i][j] = '-';
				}
			//	goto end;
				//	std::cout <<"W "<< i << '\n';
			}
		}
		//pionowe
		for (int i = 0; i < m; i++) {
			bool f = false;
			char c;
			int j;
			for (j = 0; j < n; j++) {
				if (!f && arr[j][i] != '-') {
					f = true;
					c = arr[j][i];
				}
				if (f) {
					if (arr[j][i] == c || arr[j][i] == '-') {
						continue;
					}
					else {
						break;
					}
				}
			}
			if (j == n && f) {
				s.push({ 'K',{i,c} });
				for (int j = 0; j < n; j++) {
					arr[j][i] = '-';
				}
			//	goto end;
				//std::cout <<"K "<< i << '\n';
			}
		}
	//end:
		//int wzk;
	}
	std::cout << s.size() << '\n';
	while (!s.empty()) {
		std::cout << s.top().first << " " << s.top().second.first + 1<< " " << s.top().second.second << '\n';
		s.pop();
	}

}