#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
int dp[maxn][3][2];
int main() {
  int n;
  cin >> n;
  string s;
  cin >> s;
  int x = s[0] - '0';
  dp[0][2][x] = dp[0][1][x] = dp[0][0][x] = 1;
  dp[0][2][x ^ 1] = dp[0][1][x ^ 1] = dp[0][0][x ^ 1] = 0;
  for (int i = 1; i < n; i++) {
    x = s[i] - '0';
    dp[i][0][x] = 1 + dp[i - 1][0][x ^ 1];
    dp[i][1][x] = 1 + max(dp[i - 1][1][x ^ 1], dp[i - 1][0][x]);
    dp[i][2][x] = 1 + max(dp[i - 1][2][x ^ 1], dp[i - 1][1][x]);
    dp[i][0][x ^ 1] = dp[i - 1][0][x ^ 1];
    dp[i][1][x ^ 1] = dp[i - 1][1][x ^ 1];
    dp[i][2][x ^ 1] = dp[i - 1][2][x ^ 1];
  }
  cout << max(dp[n - 1][2][0], dp[n - 1][2][1]) << "\n";
  return 0;
}
