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
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
#include <bits/stdc++.h>

using namespace std;

int n,m,wie[2007][100],kol[2007][100],rozwie[2007],rozkol[2007];
char x,ch[20007][2007];
pair<int,int> a;
vector <pair<int,int>> v;
queue <pair<int,int>> q;

int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> m;
  for(int i=1; i<=n; i++)
  {
    for(int j=1; j<=m; j++)
    {
      cin >> x;
      ch[i][j]=x;
      if(wie[i][x]==0)
        rozwie[i]++;
      wie[i][x]++;
      if(kol[j][x]==0)
        rozkol[j]++;
      kol[j][x]++;
    }
  }
  for(int i=1; i<=n; i++)
  {
    if(rozwie[i]==1)
    {
      rozwie[i]=-1;
      q.push({i,1});
    }
  }
  for(int i=1; i<=m; i++)
  {
    if(rozkol[i]==1)
    {
      rozkol[i]=-1;
      q.push({i,2});
    }
  }
  while(!q.empty())
  {
    a=q.front();
    //cout << a.first << ' ' << a.second << '\n';
    q.pop();
    if(a.second==1)
    {
      for(int i='A'; i<='Z'; i++)
      {
        if(wie[a.first][i]!=0)
        {
          v.push_back({a.first,i});
          break;
        }
      }
      for(int i=1; i<=m; i++)
      {
        kol[i][ch[a.first][i]]--;
        if(kol[i][ch[a.first][i]]==0)
          rozkol[i]--;
        if(rozkol[i]==1)
        {
          rozkol[i]=-1;
          q.push({i,2});
        }
      }
    }
    else
    {
      rozkol[a.first]=-1;
      for(int i='A'; i<='Z'; i++)
      {
        if(kol[a.first][i]!=0)
        {
          v.push_back({-a.first,i});
          break;
        }
      }
      for(int i=1; i<=n; i++)
      {
        wie[i][ch[i][a.first]]--;
        if(wie[i][ch[i][a.first]]==0)
          rozwie[i]--;
        if(rozwie[i]==1)
        {
          rozwie[i]=-1;
          q.push({i,1});
        }
      }
    }
  }
  cout << v.size() << '\n';
  for(int i=v.size()-1; i>=0; i--)
  {
    if(v[i].first>0)
      cout << "R " << v[i].first << " " << char(v[i].second) << '\n';
    else
      cout << "K " << -v[i].first << " " << char(v[i].second) << '\n';
  }
  return 0;
}