#include <bits/stdc++.h>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
string n;
getline(cin,n);
long long x=n.length(),brojac=0,brojNula=0,brojJedinica=0,trenutnoNula=0,trenutnoJedinica=0,y=pow(10,17);
for(long long int i=0; i<x; i++){
    if(n.at(i)=='1'){
        brojac++;
        brojJedinica++;
    }
    else if(n.at(i)=='0'){
        brojac++;
        brojNula++;
    }
    else break;
}
if(brojac==x){
    if(n.at(0)=='1' && n.at(1)=='0'){
        if(y>brojJedinica-1)
            y=brojJedinica-1;
    }
    else if(n.at(0)=='0' && n.at(1)=='1'){
        if(y>brojNula-1)
            y=brojNula-1;
    }
    for(long long int i=0; i<x-1; i++){
        if((n.at(i)=='1' && n.at(i+1)=='0') || (n.at(i)=='0' && n.at(i+1)=='1')){
        trenutnoJedinica++;
        trenutnoNula++;
        if(min(((i+2-trenutnoJedinica)+(brojJedinica-trenutnoJedinica)),((i+2-trenutnoNula)+(brojNula-trenutnoNula)))<y)
            y=min(((i+2-trenutnoJedinica)+(brojJedinica-trenutnoJedinica)),((i+2-trenutnoNula)+(brojNula-trenutnoNula)));
        i++;
        }
        else {
            if(n.at(i)=='1' && n.at(i+1)=='1')
                trenutnoJedinica++;
            else if(n.at(i)=='0' && n.at(i+1)=='0')
                trenutnoNula++;
            if(min(((i+1-trenutnoJedinica)+(brojJedinica-trenutnoJedinica)),((i-trenutnoNula)+(brojNula-trenutnoNula)))<y)
                y=min(((i+1-trenutnoJedinica)+(brojJedinica-trenutnoJedinica)),((i-trenutnoNula)+(brojNula-trenutnoNula)));
        }
    }
    cout<<min(min(brojNula,brojJedinica),y);
}
else
    cout<<0;
return 0;
}