package Karl.Water;

/*
LANG: JAVA
TASK: beads
*/


import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.LinkedList;

public class beads {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
BufferedReader br = new BufferedReader(new FileReader("beads.in"));
PrintWriter pw = new PrintWriter (new FileWriter("beads.out"));

int length = Integer.parseInt(br.readLine());
String temp = br.readLine();
LinkedList<Character> necklace = new LinkedList<Character>();
for (int i=0;i<length;i++) {
necklace.add(temp.charAt(i));
}

int max = 0;
for (int i=0;i<length;i++) {
char remove = necklace.removeFirst();
char first = necklace.getFirst();
int position = 0;
necklace.addLast(remove);

int result = 0;
boolean allW = false;
if (necklace.getFirst()=='w'){
int end1 = find(necklace,0,length,0);
result = end1 + 1;
if (end1<necklace.size()-1){
int end2 = find (necklace,end1+1,length,0);
first = necklace.get(end2);
position = end2;
result = result + end2 - end1;
}else {
allW = true;
}
} else {
int end = find(necklace,0,length,0);
position = end ;
result = result + end + 1;
}
if (!allW){
if (necklace.getLast()=='w') {
int end1 = find(necklace, length-1,position,1);
int end2 = find(necklace,end1-1,position,1);

if (necklace.get(end2)==first){
result = result ;
}else {
result = result + length - end1;
result = result + end1 - end2 ;
}
}else {
if (necklace.getLast()==first){
result = result;
}else {
int end = find(necklace,length-1,position,1);
result = result + length - end ;
}
}
}
if (result >=max){
max = result;
}
}
pw.println(max);
pw.close();
br.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public static int find(LinkedList<Character> necklace,int startPoint ,int endPoint,int direction){
if (direction ==0 ){
int i=startPoint+1;
for (;i<=endPoint-1;i++){
if (necklace.get(i)!=necklace.get(startPoint)&&necklace.get(i)!='w'){
break;
}
}
return i-1;
} else {
int i=startPoint-1;
for (;i>=endPoint+1;i--){
if (necklace.get(i)!=necklace.get(startPoint)&&necklace.get(i)!='w'){
break;
}
}
return i+1;
}
}

}
package Karl.Water;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

public class beads1 {
List<Integer> list = new ArrayList<Integer>();
public int judge(String s){
if(s.charAt(0)=='w'){
return judgeE(s);
}else{
return judgeB(s);
}
}
public int judgeE(String s){
int result=0;
int j=0;
char c=s.charAt(s.length()-1);
for(int k=s.length()-1;k>0;k--){
j++;
if(c!=s.charAt(k-1)&&s.charAt(k-1)!='w'){
list.add(j);
System.out.println(j);
j=0;
c=s.charAt(k-1);
}
}
int h = 0;
for(int k=0;k<s.length()-1;k++){
if(s.charAt(k)==s.charAt(k+1)){
h++;
}
}
// System.out.println(h+" "+s.length()/2);
if(h==(s.length()-1)){
list.add((s.length()/2));
}
list.add(0);
int size = list.size();
for(int p=0;p<size;p++){
if(p==size-1){
result = result>(list.get(p)+list.get(0))?result:(list.get(p)+list.get(0));
}else{
result = result>(list.get(p)+list.get(p+1))?result:(list.get(p)+list.get(p+1));
}
}
return result;
}
public int judgeB(String s){
int result=0,f=0;
int j=0;
char c=s.charAt(0);
for(int k=0;k<s.length()-1;k++){
j++;
if(c!=s.charAt(k+1)&&s.charAt(k+1)!='w'){
list.add(j);
j=0;
c=s.charAt(k+1);
}
}
int h = 0;
for(int k=0;k<s.length()-1;k++){
if(s.charAt(k)==s.charAt(k+1)){
h++;
}
}
// System.out.println(h+" "+s.length()/2);
if(h==(s.length()-1)){
list.add((s.length()/2));
}
list.add(0);
int size = list.size();
for(int p=0;p<size;p++){
if(p==size-1){
result = result>(list.get(p)+list.get(0))?result:(list.get(p)+list.get(0));
}else{
result = result>(list.get(p)+list.get(p+1))?result:(list.get(p)+list.get(p+1));
}
}
return result;
}
public static void main(String[] args) throws IOException {
beads1 b = new beads1();
BufferedReader br = new BufferedReader(new FileReader("beads.in"));
PrintWriter pw = new PrintWriter (new FileWriter("beads.out"));
String s1 = br.readLine();
String s2 = br.readLine();
pw.println(b.judge(s2+s2));
pw.close();
br.close();
}
}