#include <stdio.h>

char nu_zn[30], zn_nu[101], linia[2001], tab[2001][2001];
long rzedy, kolumny, podl_rz[2001][31], podl_kol[2001][31];
long ruchy[5000][4], licz_ruchy=0, nr_koloru;



int main()
{
for (int ii=1; ii<=100; ii++)   zn_nu[ii]=0;
for (int ii=0; ii<=30; ii++)   nu_zn[ii]=0;
for (int ii=1; ii<=2000; ii++)   for (int jj=0; jj<=30; jj++)   { podl_rz[ii][jj]=0;   podl_kol[ii][jj]=0; }
scanf("%ld",&rzedy);
scanf("%ld",&kolumny);
for (int ii=1; ii<=rzedy; ii++)
	{
	 scanf("%s",linia);
	 for (int jj=0; jj<kolumny; jj++)
	 	{
	 	 if(zn_nu[linia[jj]] == 0)
	 	 	{ //Trzeba dodać ten znak
	 	 	 nu_zn[0]++;
	 	 	 zn_nu[linia[jj]] = nu_zn[0];
	 	 	 nu_zn[nu_zn[0]] = linia[jj];
	 	 	}
	 	 tab[ii][jj+1] = zn_nu[linia[jj]];
	 	 podl_rz[ii][ zn_nu[linia[jj]] ]++;
	 	 podl_kol[jj+1][ zn_nu[linia[jj]] ]++;
	 	}
	}

// Teraz licznik różnych kolorów dla każdej kolumny i wiersza:
for (int ii=1; ii<=rzedy; ii++)   for (int jj=1; jj<=30; jj++)   if(podl_rz[ii][jj]>0)   podl_rz[ii][0]++;
for (int ii=1; ii<=kolumny; ii++)   for(int jj=1;jj<=30; jj++)   if(podl_kol[ii][jj]>0)   podl_kol[ii][0]++;

podl_rz[0][0]=0;
for (int ii=1; ii<=rzedy; ii++)   podl_rz[0][0] += podl_rz[ii][0];
podl_kol[0][0]=0;
for (int ii=1; ii<=kolumny; ii++)   podl_kol[0][0] += podl_kol[ii][0];

/*
for (int ii=1; ii<=rzedy; ii++) {
	for (int jj=1; jj<=kolumny; jj++) printf("%d",tab[ii][jj]);
	printf("\n"); }
printf("\nPodliczanie rzedow (wsz=%ld):\n",podl_rz[0][0]);
for (int ii=1; ii<=rzedy; ii++) {
	printf("rzad %d: ",ii);
	for (int jj=0; jj<=nu_zn[0]; jj++)   printf("%ld ", podl_rz[ii][jj]);
	printf("\n"); }
printf("\nPodliczanie kolumn (wsz=%ld):\n",podl_kol[0][0]);
for (int ii=1; ii<=kolumny; ii++) {
	printf("kolumna %d: ",ii);
	for (int jj=0; jj<=nu_zn[0]; jj++)   printf("%ld ", podl_kol[ii][jj]);
	printf("\n"); }
*/

while ((podl_rz[0][0]>0)&&(podl_kol[0][0]>0))
	{
	 // Na zmianę przeglądam wszystkie rzędy oraz kolumny w poszukiwaniu takich, w których jest tylko jeden kolor.
	 // Jeśli taki znajdę, to wykonuję ten ruch (później wynik zapiszę w odwrotnej kolejności);
	 // Trzeba wyzerować tabelę z obrazkiem. Z każdym zerowanym elementem zmniejszać też podliczenia, aktualizując przy tym sumę podliczeń.
	 for (int rz = 1; rz<= rzedy; rz++)   if (podl_rz[rz][0] == 1)
	 	{ // Wykonuję ten ruch:
	 	 licz_ruchy++;
	 	 ruchy[licz_ruchy][1] = 1; // 1 - rząd;   2 - kolumna
	 	 ruchy[licz_ruchy][2] = rz;  // numer rzędu
	 	 for (int ii=1; ii<=30; ii++)   if (podl_rz[rz][ii] > 0)   { nr_koloru=ii;  break; }
	 	 ruchy[licz_ruchy][3] = nr_koloru;
	 	 
	 	 // Kasuję ten rząd w podliczeniu
	 	 podl_rz[rz][0] = 0;
	 	 podl_rz[0][0]--;
	 	 // Po kolei idę po tablicy i jeśli jest ten element, to odejmuję z danej kolumny
	 	 for (int jj=1; jj<=kolumny; jj++)   if (tab[rz][jj] > 0)
	 	 	{ // Znalazłem element w tablicy, który trzeba odjąć
	 	 	 podl_kol[jj][tab[rz][jj]]--;
	 	 	 if (podl_kol[jj][tab[rz][jj]]==0)
	 	 	 	{ // Wyzerowało się, więc trzeba zaktualizować podliczenia
	 	 	 	 podl_kol[jj][0]--;
	 	 	 	 podl_kol[0][0]--;
	 	 	 	}
	 	 	 // Wyzerowanie tego elementu:
	 	 	 tab[rz][jj] = 0;
	 	 	}
	 	}
	 for (int kol=1; kol<=kolumny; kol++)   if (podl_kol[kol][0]==1)
	 	{ //Wykonuję ruch:
	 	 licz_ruchy++;
	 	 ruchy[licz_ruchy][1] = 2; // 1-rząd;  2-kolumna
	 	 ruchy[licz_ruchy][2] = kol; // numer kolumny
	 	 for (int ii=1; ii<=30; ii++)  if (podl_kol[kol][ii] >0)   { nr_koloru=ii; break; }
	 	 ruchy[licz_ruchy][3] = nr_koloru;
	 	 // Kasuję tę kolumnę w podliczeniu
	 	 podl_kol[kol][0]=0;
	 	 podl_kol[0][0]--;
	 	 // Po kolei idę po tablicy i jeśli jest ten element, to odejmuję z danego wiersza
	 	 for (int ii=1; ii<=rzedy; ii++)   if (tab[ii][kol] > 0)
	 	 	{ // Znalazłem element do odjęcia
	 	 	 podl_rz[ii][tab[ii][kol]]--;
	 	 	 if (podl_rz[ii][tab[ii][kol]]==0)
	 	 	 	{ // Wyzerowało się, więc aktualizuję podliczenia
	 	 	 	 podl_rz[ii][0]--;
	 	 	 	 podl_rz[0][0]--;
	 	 	 	}
	 	 	 // Wyzerowanie tego elementu w tablicy:
	 	 	 tab[ii][kol] = 0;
	 	 	}
		}
	}

// No i pozostało wypisanie wyniku, ale w odwrotnej kolejności:
printf("%ld\n",licz_ruchy);
for (int ii=licz_ruchy; ii>=1; ii--)
	{
	 if (ruchy[ii][1]==1)   printf("R ");
	 else   printf("K ");
	 printf("%ld ",ruchy[ii][2]);
	 printf("%c\n",nu_zn[ruchy[ii][3]]);
	}





return 0;
}




