#include <bits/stdc++.h>
using namespace std;
typedef struct {
  int x;
  int y;
  int s;
} star;
char ar[105][105];
int v[105][105];
star aa[100005];
int n, m, ans;
void search(int i, int j) {
  int l = 1;
  while (1) {
    if ((i - l < 1) || (j - l < 1) || (i + l > n) || (j + l > m) ||
        (ar[i - l][j] == '.') || (ar[i][j - l] == '.') ||
        (ar[i + l][j] == '.') || (ar[i][j + l] == '.'))
      break;
    v[i - l][j] = v[i + l][j] = v[i][j - l] = v[i][j + l] = 1;
    l++;
  }
  if (l == 1) return;
  v[i][j] = 1;
  aa[ans].x = i;
  aa[ans].y = j;
  aa[ans++].s = l - 1;
}
int check() {
  int i, j;
  for (i = 1; i <= n; i++) {
    for (j = 1; j <= m; j++) {
      if (ar[i][j] == '*' && v[i][j] == 0) return 1;
    }
  }
  return 0;
}
int main() {
  int i, j;
  scanf("%d %d", &n, &m);
  for (i = 1; i <= n; i++)
    for (j = 1; j <= m; j++) scanf(" %1c", &ar[i][j]);
  for (i = 1; i <= n; i++) {
    for (j = 1; j <= m; j++) {
      if (ar[i][j] == '*') search(i, j);
    }
  }
  if (check()) {
    printf("-1");
    return 0;
  }
  printf("%d\n", ans);
  for (i = 0; i < ans; i++) printf("%d %d %d\n", aa[i].x, aa[i].y, aa[i].s);
  return 0;
}
