#include <bits/stdc++.h>
using namespace std;
int ans1[10010], ans2[10010], ans3[10010];
char a[110][110], b[110][110];
int main() {
  int n, m, i, j, lans, x, y, gs1, gs2, gs3, gs4;
  scanf("%d %d", &n, &m);
  for (i = 1; i <= n; i++) {
    scanf("\n");
    for (j = 1; j <= m; j++) scanf("%c", &a[i][j]);
  }
  lans = 0;
  for (i = 1; i <= n; i++) {
    for (j = 1; j <= m; j++) {
      if (a[i][j] == '*') {
        x = i;
        y = j;
        gs1 = 0;
        while (y - 1 >= 1 && a[x][y - 1] == '*') gs1++, y--;
        x = i;
        y = j;
        gs2 = 0;
        while (y + 1 <= m && a[x][y + 1] == '*') gs2++, y++;
        x = i;
        y = j;
        gs3 = 0;
        while (x - 1 >= 1 && a[x - 1][y] == '*') gs3++, x--;
        x = i;
        y = j;
        gs4 = 0;
        while (x + 1 <= n && a[x + 1][y] == '*') gs4++, x++;
        ans1[++lans] = i;
        ans2[lans] = j;
        ans3[lans] = min(min(gs1, gs2), min(gs3, gs4));
        if (ans3[lans] == 0) lans--;
      }
    }
  }
  for (i = 1; i <= n; i++)
    for (j = 1; j <= m; j++) b[i][j] = '.';
  for (i = 1; i <= lans; i++) {
    b[ans1[i]][ans2[i]] = '*';
    x = ans1[i];
    y = ans2[i];
    gs1 = 0;
    while (gs1 < ans3[i]) {
      y--;
      gs1++;
      b[x][y] = '*';
    }
    x = ans1[i];
    y = ans2[i];
    gs2 = 0;
    while (gs2 < ans3[i]) {
      y++;
      gs2++;
      b[x][y] = '*';
    }
    x = ans1[i];
    y = ans2[i];
    gs3 = 0;
    while (gs3 < ans3[i]) {
      x--;
      gs3++;
      b[x][y] = '*';
    }
    x = ans1[i];
    y = ans2[i];
    gs4 = 0;
    while (gs4 < ans3[i]) {
      x++;
      gs4++;
      b[x][y] = '*';
    }
  }
  for (i = 1; i <= n; i++) {
    for (j = 1; j <= m; j++)
      if (a[i][j] != b[i][j]) {
        printf("-1");
        return 0;
      }
  }
  printf("%d\n", lans);
  for (i = 1; i <= lans; i++) printf("%d %d %d\n", ans1[i], ans2[i], ans3[i]);
  return 0;
}
