program grozavesti;
var f,g:text;
v:array[0..300,0..300]of 1..1000000;
t1:array[0..300]of char;
t2,t3:array[0..300]of 1..1000000;
n,i,j,minl,cont,minc,aux,l,c,min,y,ok:longint;
p:char;
begin
assign(f,'grozavesti.in');
assign(g,'grozavesti.out');
reset(f);
rewrite(g);
read(f,n);
for i:=1 to n do
for j:=1 to n do read(f,v[i,j]);
for i:=1 to n do
begin
if (v[i,i]>v[i-1,i-1])then
begin
minl:=v[i-1,i-1];
minc:=v[i-1,i-1];
l:=0;
c:=0;
for j:=i+1 to n do
if (v[i,j]>minl)and(v[i,j]<v[i,i])then
begin
minl:=v[i,j];
l:=j;
end;
for j:=i+1 to n do
if (v[j,i]>minc)and(v[j,i]<v[i,i])then
begin
minc:=v[j,i];
c:=j;
end;
min:=0;
if (minl>v[i-1,i-1])then
begin
if (minc<v[i,i])then
begin
if (minc<minl)then
begin
min:=minc;
p:='c';
end else
begin
min:=minl;
p:='l';
end;
end else
begin
min:=minl;
p:='l';
end;
end else
begin
if (minc<v[i-1,i-1])then
begin
min:=minc;
p:='c';
end;
end;
if (min>0)then
begin
if (p='l')then
begin
for y:=1 to n do
begin
aux:=v[y,i];
v[y,i]:=v[y,c];
v[y,c]:=aux;
end;
cont:=cont+1;
t1[cont]:='C';
t2[cont]:=i;
t3[cont]:=c;
end else
if (p='c')then
begin
for y:=1 to n do
begin
aux:=v[i,y];
v[i,y]:=v[c,y];
v[c,y]:=aux;
end;
cont:=cont+1;
t1[cont]:='L';
t2[cont]:=i;
t3[cont]:=l;
end;
end;
ok:=0;
for j:=1 to n do
if (v[j,j]<v[j-1,j-1])then ok:=1;
if (ok=0)then break;
end;
end;
writeln(g,cont);
for i:=1 to cont do writeln(g,t1[i],' ',t2[i],' ',t3[i]);
close(f);
close(g);
end.