#include <bits/stdc++.h>
int n, m;
char a[600][600];
int b[600][600];
struct A {
  int x, y;
  int d;
  int s;
} s[360000];
int queue[250005][2];
int dx[4] = {0, 1, 0, -1};
int dy[4] = {1, 0, -1, 0};
int bfs(int sx, int sy) {
  int q, r;
  int i, j;
  int x, y;
  int tx, ty;
  q = 0;
  r = 1;
  queue[0][0] = sx;
  queue[0][1] = sy;
  b[sx][sy] = 1;
  while (q < r) {
    x = queue[q][0];
    y = queue[q][1];
    for (i = 0; i < 4; i++) {
      tx = x + dx[i];
      ty = y + dy[i];
      if (tx >= 0 && tx < n)
        if (ty >= 0 && ty < m)
          if (b[tx][ty] == 0)
            if (a[tx][ty] == '.') {
              b[tx][ty] = 1;
              queue[r][0] = tx;
              queue[r][1] = ty;
              r++;
            }
    }
    q++;
  }
  return r;
}
void input() {
  int i, j;
  scanf("%d %d ", &n, &m);
  for (i = 0; i < n; i++) gets(a[i]);
  int cnt = 0;
  int kk = 0;
  for (i = 0; i < n; i++)
    for (j = 0; j < m; j++)
      if (b[i][j] == 0)
        if (a[i][j] == '.') {
          kk = bfs(i, j);
          cnt += 3 * kk - 2;
        }
  for (i = 0; i < n; i++)
    for (j = 0; j < m; j++) b[i][j] = 0;
  printf("%d\n", cnt);
}
void process2(int sx, int sy) {
  int sl = 0;
  s[0].x = sx;
  s[0].y = sy;
  s[0].d = 0;
  b[sx][sy] = 1;
  sl = 1;
  printf("B %d %d\n", s[sl - 1].x + 1, s[sl - 1].y + 1);
  int x, y, d;
  int tx, ty;
  int i, j;
  while (sl) {
    x = s[sl - 1].x;
    y = s[sl - 1].y;
    d = s[sl - 1].d;
    if (d == 4) {
      if (sl == 1) {
      } else {
        printf("D %d %d\n", s[sl - 1].x + 1, s[sl - 1].y + 1);
        printf("R %d %d\n", s[sl - 1].x + 1, s[sl - 1].y + 1);
      }
      sl--;
    } else {
      s[sl - 1].d++;
      tx = x + dx[d];
      ty = y + dy[d];
      if (tx >= 0 && tx < n)
        if (ty >= 0 && ty < m)
          if (b[tx][ty] == 0)
            if (a[tx][ty] == '.') {
              s[sl].x = tx;
              s[sl].y = ty;
              s[sl].d = 0;
              b[tx][ty] = 1;
              sl++;
              printf("B %d %d\n", s[sl - 1].x + 1, s[sl - 1].y + 1);
            }
    }
  }
}
void process() {
  int i, j;
  for (i = 0; i < n; i++)
    for (j = 0; j < m; j++)
      if (b[i][j] == 0)
        if (a[i][j] == '.') {
          process2(i, j);
        }
}
int main() {
  input();
  process();
}
