#include <bits/stdc++.h>
using namespace std;
int n, m;
const int maxn = 200;
char pic[maxn][maxn];
bool vis[maxn][maxn];
int a[maxn * maxn], b[maxn * maxn], c[maxn * maxn];
int main() {
  while (~scanf("%d%d", &n, &m)) {
    for (int i = 0; i < n; i++) scanf("%s", pic[i]);
    memset(vis, 0, sizeof(vis));
    int cnt = 0;
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < m; j++) {
        if (pic[i][j] == '*') {
          int cnt1 = 0, cnt2 = 0, cnt3 = 0, cnt4 = 0;
          while (pic[i][j + cnt1] == '*' && j + cnt1 < m) cnt1++;
          while (pic[i][j - cnt2] == '*' && j - cnt2 >= 0) cnt2++;
          while (pic[i + cnt3][j] == '*' && i + cnt3 < n) cnt3++;
          while (pic[i - cnt4][j] == '*' && i - cnt4 >= 0) cnt4++;
          int res = min(min(cnt1, cnt2), min(cnt3, cnt4));
          if (res > 1) {
            for (int k = 1; k < res; k++) vis[i][j + k] = 1;
            for (int k = 1; k < res; k++) vis[i][j - k] = 1;
            for (int k = 1; k < res; k++) vis[i + k][j] = 1;
            for (int k = 1; k < res; k++) vis[i - k][j] = 1;
            vis[i][j] = 1;
            a[cnt] = i + 1;
            b[cnt] = j + 1;
            c[cnt] = res - 1;
            cnt++;
          }
        }
      }
    }
    int flag = 0;
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < m; j++) {
        if (pic[i][j] == '*' && vis[i][j] == 0) {
          flag = 1;
        }
        if (flag) break;
      }
      if (flag) break;
    }
    if (flag)
      cout << "-1\n";
    else {
      cout << cnt << "\n";
      for (int i = 0; i < cnt; i++) {
        printf("%d %d %d\n", a[i], b[i], c[i]);
      }
    }
  }
  return 0;
}
