#include <bits/stdc++.h>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
int dist[1005]; // max n = 1000
int cnt = 0;
for (int i = 0; i < n; i++) {
string row;
cin >> row;
int g = -1, s = -1;
for (int j = 0; j < m; j++) {
if (row[j] == 'G') g = j;
if (row[j] == 'S') s = j;
}
// Impossible case
if (g > s) {
cout << -1 << "\n";
return 0;
}
int d = s - g;
if (d > 0)
dist[cnt++] = d;
}
// Sort the array
sort(dist, dist + cnt);
// Count distinct distances
int moves = 0;
for (int i = 0; i < cnt; i++) {
if (i == 0 || dist[i] != dist[i - 1])
moves++;
}
cout << moves << "\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWludCBuLCBtOwogICAgY2luID4+IG4gPj4gbTsKCiAgICBpbnQgZGlzdFsxMDA1XTsgICAvLyBtYXggbiA9IDEwMDAKICAgIGludCBjbnQgPSAwOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgc3RyaW5nIHJvdzsKICAgICAgICBjaW4gPj4gcm93OwoKICAgICAgICBpbnQgZyA9IC0xLCBzID0gLTE7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBtOyBqKyspIHsKICAgICAgICAgICAgaWYgKHJvd1tqXSA9PSAnRycpIGcgPSBqOwogICAgICAgICAgICBpZiAocm93W2pdID09ICdTJykgcyA9IGo7CiAgICAgICAgfQoKICAgICAgICAvLyBJbXBvc3NpYmxlIGNhc2UKICAgICAgICBpZiAoZyA+IHMpIHsKICAgICAgICAgICAgY291dCA8PCAtMSA8PCAiXG4iOwogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9CgogICAgICAgIGludCBkID0gcyAtIGc7CiAgICAgICAgaWYgKGQgPiAwKQogICAgICAgICAgICBkaXN0W2NudCsrXSA9IGQ7CiAgICB9CgogICAgLy8gU29ydCB0aGUgYXJyYXkKICAgIHNvcnQoZGlzdCwgZGlzdCArIGNudCk7CgogICAgLy8gQ291bnQgZGlzdGluY3QgZGlzdGFuY2VzCiAgICBpbnQgbW92ZXMgPSAwOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjbnQ7IGkrKykgewogICAgICAgIGlmIChpID09IDAgfHwgZGlzdFtpXSAhPSBkaXN0W2kgLSAxXSkKICAgICAgICAgICAgbW92ZXMrKzsKICAgIH0KCiAgICBjb3V0IDw8IG1vdmVzIDw8ICJcbiI7CglyZXR1cm4gMDsKfQ==