#include<iostream>
#include<queue>
#include<set>
#include<utility>

using namespace std;
typedef pair<int, int> pii;
typedef long long ll;
typedef pair<ll, ll> pll;


#define PB push_back
#define ST first
#define ND second

int main()
{
	ios_base::sync_with_stdio(0);
	string s;
	cin >> s;
	int n = s.size();
	ll fin = (1LL<<n)-1;
	ll a=0;
	if(s[0] == '0')
	{
		cout << "-1\n";
		return 0;
	}
	for(int i=0; i < n; i++)
	{
		if(s[n-i-1] == '1')
			a+=(1LL<<i);
	}
	if(a == fin)
	{
		cout << "0\n";
		return 0;
	}
	queue<pll> kolejka;
	set<ll> used;
	kolejka.push({a, 0});
	used.insert(a);
	while(kolejka.empty() == false)
	{
		pll x = kolejka.front();
		kolejka.pop();
		ll a = x.ST;
		ll d = x.ND;
		//~ cout << a << endl;
		for(int k=1; k < n; k++)
		{
			ll b = a|(a>>k);
			if(used.count(b) == 0)
			{
				kolejka.push({b, d+1});
				used.insert(b);
			}
			if(b == fin)
			{
				cout << d+1 << "\n";
				return 0;
			}
		}
	}
}


