#include <stdio.h>
#include <string.h>
#define min(a, b) a < b ? a : b
using namespace std;
const int N = 3e5 + 1;
int n, hack, c[N], ans = 1e9;
char t[N];
inline void calc() {
bool b[N];
memset(b, 0, sizeof(b));
for (int j = 1; j <= n; j++) {
if (c[j] == 1) {
if (j - 1 >= 1 && !b[j - 1]) {
c[j - 1] = 1;
b[j - 1] = 1;
}
if (j + 1 <= n && !b[j + 1]) {
c[j + 1] = 1;
b[j + 1] = 1;
}
}
}
}
inline void dfs(int i, int s) {
if (i == n + 1) {
for (int i = 1; i <= 20; i++) {
calc();
int sum = 0;
for (int i = 1; i <= n; i++)
sum += c[i];
if (sum != hack)
continue;
char y[N];
for (int i = 1; i <= n; i++)
y[i] = c[i] + '0';
if (y + 1 == t + 1) {
ans = min(ans, s);
return;
}
}
return;
}
if (s < hack) {
c[i] = 1;
dfs(i + 1, s + 1);
}
c[i] = 0;
dfs(i + 1, s);
}
int main() {
scanf("%d", &n);
scanf("%s", t + 1);
for (int i = 1; i <= n; i++)
hack += t[i] - '0';
dfs(1, 0);
printf("%d", ans);
}