#include <bits/stdc++.h>
using namespace std;
const int maxn = 550;
char g[maxn][maxn];
char ans[1000001][20];
int n, m, num;
void dfs(int x, int y, bool s = 0) {
  if (x >= n || x < 0 || y >= m || y < 0) return;
  if (g[x][y] == '#') return;
  ++num;
  sprintf(ans[num], "B %d %d", x + 1, y + 1);
  g[x][y] = '#';
  dfs(x + 1, y);
  dfs(x - 1, y);
  dfs(x, y + 1);
  dfs(x, y - 1);
  if (s) return;
  ++num;
  sprintf(ans[num], "D %d %d", x + 1, y + 1);
  ++num;
  sprintf(ans[num], "R %d %d", x + 1, y + 1);
}
int main() {
  int i, j;
  scanf("%d%d", &n, &m);
  for (i = 0; i < n; i++) scanf("%s", g[i]);
  num = 0;
  for (i = 0; i < n; i++) {
    for (j = 0; j < m; j++)
      if (g[i][j] == '.') dfs(i, j, 1);
  }
  printf("%d", num);
  for (i = 0; i <= num; i++) printf("%s\n", ans[i]);
  return 0;
}
