#include <bits/stdc++.h>
using namespace std;
const long long int M = 1e9 + 7;
long long int inf = 1e18;
long long int begtime = clock();
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
long long int n, m;
long long int binpow(long long int val, long long int deg) {
  if (deg < 0) return 0;
  if (!deg) return 1 % M;
  if (deg & 1) return binpow(val, deg - 1) * val % M;
  long long int res = binpow(val, deg >> 1);
  return (res * res) % M;
}
long long int modinv(long long int n) { return binpow(n, M - 2); }
long long int gcd(long long int a, long long int b) {
  if (b == 0)
    return a;
  else
    return gcd(b, a % b);
}
vector<vector<char>> a;
vector<vector<long long int>> used;
vector<tuple<char, long long int, long long int>> out;
void dfs(long long int i, long long int j, long long int root1,
         long long int root2) {
  used[i][j] = 1;
  vector<pair<long long int, long long int>> move = {
      {1, 0}, {-1, 0}, {0, 1}, {0, -1}};
  for (auto u : move) {
    long long int x = i + u.first;
    long long int y = j + u.second;
    if (x >= 0 && x < n && y >= 0 && y < m) {
      if (a[x][y] != '#') {
        if (!used[x][y]) dfs(x, y, root1, root2);
      }
    }
  }
  used[i][j] = 2;
  if (i != root1 || j != root2) {
    out.push_back({'D', i + 1, j + 1});
    out.push_back({'R', i + 1, j + 1});
  }
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  long long int i, j, t, k, x, y, z, N;
  cin >> n >> m;
  a.resize(n, vector<char>(m));
  used.assign(n, vector<long long int>(m, 0));
  for (long long int i = 0; i < n; i++) {
    for (long long int j = 0; j < m; j++) {
      cin >> a[i][j];
      if (a[i][j] == '.') out.push_back({'B', i + 1, j + 1});
    }
  }
  for (long long int i = 0; i < n; i++) {
    for (long long int j = 0; j < m; j++) {
      if (a[i][j] != '#') {
        if (!used[i][j]) dfs(i, j, i, j);
      }
    }
  }
  cout << out.size() << '\n';
  for (auto u : out) {
    char ch;
    tie(ch, x, y) = u;
    cout << ch << " " << x << " " << y << '\n';
  }
  return 0;
}
