#include <bits/stdc++.h>
using namespace std;
string str;
int n, len, l, r, max1, max2, s, ans, qq;
struct node {
  int l, r;
};
vector<node> a;
int main() {
  int i, j;
  bool flag = 0;
  cin >> n >> str;
  len = str.size();
  for (i = 0; i < len; i++) {
    if (str[i] == 'G' && flag == 0) {
      l = i;
      flag = 1;
      qq++;
    }
    if ((str[i] == 'S' || i == len - 1) && flag == 1) {
      flag = 0;
      if (str[i] == 'S')
        r = i - 1;
      else
        r = i;
      a.push_back((node){l, r});
    }
  }
  s = a.size();
  for (i = 0; i < s; i++) {
    max1 = max(a[i].r - a[i].l + 1, max1);
    if (i > 0 && a[i - 1].r + 2 == a[i].l)
      max2 = max(max2, a[i].r - a[i].l + 2 + a[i - 1].r - a[i - 1].l);
  }
  if (qq >= 2) max1++;
  if (s > 2) max2++;
  ans = max(max2, max1);
  cout << ans << endl;
  return 0;
}
