#include <bits/stdc++.h>
int n;
int dp[257];
int dp2[257];
int mask(int n1,int n2,int n3,int n4){
return n1*4*4*4+n2*4*4+n3*4+n4;
}
std::array<int,4> demask(int num){
return {(num/(4*4*4))%4,(num/(4*4))%4,(num/(4))%4,(num)%4};
}
signed main(){
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
int n;
std::cin >> n;
std::string str;
std::cin >> str;
for(int i=0;i<256;i++){
auto dm=demask(i);
if(dm[0]==3&&dm[1]==3&&dm[2]==3&&dm[3]==3)dp2[i]=0;//i==255 basically
else dp2[i]=-1e9;
dp[i]=-1e9;
}
for(auto ndp:str){
int v=0;
if(ndp=='M')v=0;
else if(ndp=='F')v=1;
else v=2;
for(int i=0;i<256;i++){
auto arr = demask(i);
dp[mask(arr[1],v,arr[2],arr[3])]=std::max(dp[mask(arr[1],v,arr[2],arr[3])],1+dp2[i]+(int)(arr[0]!=v&&arr[0]!=3)+(int)(arr[1]!=v&&arr[1]!=3)-(int)((arr[0]==arr[1])&&arr[0]!=v&&arr[1]!=3));
dp[mask(arr[0],arr[1],arr[3],v)]=std::max(dp[mask(arr[0],arr[1],arr[3],v)],1+dp2[i]+(int)(arr[2]!=v&&arr[2]!=3)+(int)(arr[3]!=v&&arr[3]!=3)-(int)((arr[2]==arr[3])&&arr[2]!=v&&arr[3]!=3));
}
for(int i=0;i<256;i++){
if(dp[i]>=0)
//std::cout << dp[i] << ' ';
dp2[i]=dp[i];dp[i]=-1e9;
}
//std::cout << '\n';
}
int min = -1e9;
for(int i=0;i<256;i++){
min=std::max(min,dp2[i]);
}
std::cout << min;
}
/*
6
MBMFFB
*/
/*
16
MMBMBBBBMMMMMBMB
*/