#include<iostream>
using namespace std;
string mv(string s,int k){
	for(int i=0;i<s.length()-k;i++){
		if(s[i]=='1'&&s[i+k]=='0')s[i+k]='2';
	}
	for(int i=0;i<s.length();i++){
		if(s[i]=='2')s[i]='1';
	}
	return s;
}
int det(string s){
	if(s[0]=='0')return -1;
	int min=41,l=0;
	for(int i=0;i<s.length();i++){
		if(s[i]=='1')l++;
		else break;
	}
	if(l==s.length())return 0;
	int max=l;
	string s3;
	string ss;
	for(int a=1;;a++){
		max=0;
		s3=s;
		l=0;
		for(int i=0;i<s.length();i++){
                	if(s[i]=='1')l++;
                	else break;
        	}
		for(int i=1;i<=l;i++){
			ss=mv(s,i);
			int ll=0;
			for(int i=0;i<ss.length();i++){
				if(ss[i]=='1')ll++;
				else break;
			}
			//h=det(ss);
			//cout<<s<<" -> "<<i<<" "<<ss<<" "<<h<<endl;
			if(ll>max){
				max=ll;
				s3=ss;
			}
		}
		if(max==s.length())return a;
		s=s3;
		//cout<<s<<endl;
	}
}
int main(){
	string s;
	cin>>s;
	int n=det(s);
	cout<<n<<endl;
	return 0;
}
