#include <bits/stdc++.h>
using namespace std;
int OneD(int row, int col, int t_n_o_r) { return row * t_n_o_r + col; }
long long int MOD(long long int a, long long int b) {
  return a >= 0 ? a % b : (b - abs(a % b)) % b;
}
void MN(long long int &a, long long int b) {
  if (a > b) a = b;
}
void MX(long long int &a, long long int b) {
  if (a < b) a = b;
}
int X[] = {1, 0, -1, 0, 1, -1, -1, 1};
int Y[] = {0, 1, 0, -1, 1, 1, -1, -1};
int main() {
  int n, t = 0, last, nw;
  scanf("%d", &n);
  string str;
  cin >> str;
  t++;
  last = str[0] - '0';
  for (int i = 1; i < n; i++) {
    nw = str[i] - '0';
    if (nw != last) {
      t++;
      last ^= 1;
    }
  }
  printf("%d\n", (((t + 2 < n)) ? (t + 2) : (n)));
  return 0;
}
