// SAVE PALESTINE
// SAVE THE MUSLIMS
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
#define ll long long
#define endl '\n'
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define mem(a, b) memset(a, b, sizeof(a))
#define read(x) \
for (auto &it : x) \
cin >> it;
const int MOD = 1e9 + 7;
const int N = 1e5 + 7;
#ifndef ONLINE_JUDGE
#include "template.cpp"
#else
#define debug(...)
#define debugArr(...)
#endif
typedef __gnu_pbds::tree<int, __gnu_pbds::null_type, less<int>, __gnu_pbds::rb_tree_tag, __gnu_pbds::tree_order_statistics_node_update> ordered_set;
/*
unordered_map<ll, ll> mp1;
mp.reserve(1024);
mp.max_load_factor(0.25);
*/
ll n, m;
vector<string> s;
bool valid(ll l, ll r)
{
if (l < 0 || l >= n || r < 0 || r >= m || s[l][r] == '.')
{
return 0;
}
return 1;
}
int32_t main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cin >> n >> m;
s.resize(n);
for (int i = 0; i < n; i++)
{
cin >> s[i];
}
vector<tuple<ll, ll, ll>> ans;
vector<vector<ll>> vis(n, vector<ll>(m));
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
ll f = 1;
while (valid(i, j + f) && valid(i, j - f) && valid(i + f, j) && valid(i - f, j))
{
vis[i][j + f] = 1;
vis[i + f][j] = 1;
vis[i][j - f] = 1;
vis[i - f][j] = 1;
f++;
}
if (f > 1)
{
vis[i][j] = 1;
ans.push_back({i, j, f - 1});
}
}
}
ll k = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if (s[i][j] == '*' && !vis[i][j])
{
k = 1;
break;
}
}
if (k)
break;
}
if (k)
cout << -1 << endl;
else
{
cout << ans.size() << endl;
for (auto [a, b, c] : ans)
{
cout << a + 1 << " " << b + 1 << " " << c << endl;
}
}
return 0;
}
Ly8gU0FWRSBQQUxFU1RJTkUKLy8gU0FWRSBUSEUgTVVTTElNUwojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGUgPGV4dC9wYl9kcy9hc3NvY19jb250YWluZXIuaHBwPgojaW5jbHVkZSA8ZXh0L3BiX2RzL3RyZWVfcG9saWN5LmhwcD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBlbmRsICdcbicKI2RlZmluZSBhbGwoeCkgeC5iZWdpbigpLCB4LmVuZCgpCiNkZWZpbmUgcmFsbCh4KSB4LnJiZWdpbigpLCB4LnJlbmQoKQojZGVmaW5lIG1lbShhLCBiKSBtZW1zZXQoYSwgYiwgc2l6ZW9mKGEpKQojZGVmaW5lIHJlYWQoeCkgICAgICAgIFwKICAgIGZvciAoYXV0byAmaXQgOiB4KSBcCiAgICAgICAgY2luID4+IGl0Owpjb25zdCBpbnQgTU9EID0gMWU5ICsgNzsKY29uc3QgaW50IE4gPSAxZTUgKyA3OwojaWZuZGVmIE9OTElORV9KVURHRQojaW5jbHVkZSAidGVtcGxhdGUuY3BwIgojZWxzZQojZGVmaW5lIGRlYnVnKC4uLikKI2RlZmluZSBkZWJ1Z0FyciguLi4pCiNlbmRpZgp0eXBlZGVmIF9fZ251X3BiZHM6OnRyZWU8aW50LCBfX2dudV9wYmRzOjpudWxsX3R5cGUsIGxlc3M8aW50PiwgX19nbnVfcGJkczo6cmJfdHJlZV90YWcsIF9fZ251X3BiZHM6OnRyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZT4gb3JkZXJlZF9zZXQ7CgovKgp1bm9yZGVyZWRfbWFwPGxsLCBsbD4gbXAxOwptcC5yZXNlcnZlKDEwMjQpOwptcC5tYXhfbG9hZF9mYWN0b3IoMC4yNSk7CiovCmxsIG4sIG07CnZlY3RvcjxzdHJpbmc+IHM7CmJvb2wgdmFsaWQobGwgbCwgbGwgcikKewogICAgaWYgKGwgPCAwIHx8IGwgPj0gbiB8fCByIDwgMCB8fCByID49IG0gfHwgc1tsXVtyXSA9PSAnLicpCiAgICB7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCmludDMyX3QgbWFpbigpCnsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CgogICAgY2luID4+IG4gPj4gbTsKICAgIHMucmVzaXplKG4pOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQogICAgewogICAgICAgIGNpbiA+PiBzW2ldOwogICAgfQogICAgdmVjdG9yPHR1cGxlPGxsLCBsbCwgbGw+PiBhbnM7CgogICAgdmVjdG9yPHZlY3RvcjxsbD4+IHZpcyhuLCB2ZWN0b3I8bGw+KG0pKTsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgIHsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG07IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGxsIGYgPSAxOwogICAgICAgICAgICB3aGlsZSAodmFsaWQoaSwgaiArIGYpICYmIHZhbGlkKGksIGogLSBmKSAmJiB2YWxpZChpICsgZiwgaikgJiYgdmFsaWQoaSAtIGYsIGopKQogICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgdmlzW2ldW2ogKyBmXSA9IDE7CiAgICAgICAgICAgICAgICB2aXNbaSArIGZdW2pdID0gMTsKICAgICAgICAgICAgICAgIHZpc1tpXVtqIC0gZl0gPSAxOwogICAgICAgICAgICAgICAgdmlzW2kgLSBmXVtqXSA9IDE7CiAgICAgICAgICAgICAgICBmKys7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChmID4gMSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmlzW2ldW2pdID0gMTsKICAgICAgICAgICAgICAgIGFucy5wdXNoX2JhY2soe2ksIGosIGYgLSAxfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGwgayA9IDA7CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBtOyBqKyspCiAgICAgICAgewogICAgICAgICAgICBpZiAoc1tpXVtqXSA9PSAnKicgJiYgIXZpc1tpXVtqXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgayA9IDE7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKGspCiAgICAgICAgICAgIGJyZWFrOwogICAgfQoKICAgIGlmIChrKQogICAgICAgIGNvdXQgPDwgLTEgPDwgZW5kbDsKCiAgICBlbHNlCiAgICB7CgogICAgICAgIGNvdXQgPDwgYW5zLnNpemUoKSA8PCBlbmRsOwoKICAgICAgICBmb3IgKGF1dG8gW2EsIGIsIGNdIDogYW5zKQogICAgICAgIHsKICAgICAgICAgICAgY291dCA8PCBhICsgMSA8PCAiICIgPDwgYiArIDEgPDwgIiAiIDw8IGMgPDwgZW5kbDsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=