#include<iostream>
#include<string>
using namespace std;
int ile[21];
int pocz[40];
int czy[40];
int n;
int spr()
{
		for(int i=0;i<n;i++)czy[i]=pocz[i];
		for(int i=1;i<=20;i++)
		{
				for(int j=0;j<ile[i];j++)
				{
						for(int z=n-1;z>=0;z--)
						{
								if(czy[z] and z+i<n)czy[z+i]=1;
						}
				}
		}
		for(int i=0;i<n;i++)
		{
				if(czy[i]==0)return 0;
		}
		return 1;
}
int targ;
int czyg;
void rek(int gl)
{
		if(czyg)return;
		if(gl==targ)
		{
				if(spr())czyg=1;
				return;
		}
		for(int i=1;i<=20;i++)
		{
				if(ile[i]<2)
				{
						ile[i]++;
						rek(gl+1);
						ile[i]--;
				}
		}
}
int main()
{
		ios_base::sync_with_stdio(0);
		string s;
		cin>>s;
		n=s.size();
		for(int i=0;i<n;i++)pocz[i]=s[i]-'0';
		if(pocz[0]==0)
		{
				cout<<-1;
				return 0;
		}
		for(int i=1;i<=5;i++)
		{
				czyg=0;
				targ=i;
				rek(0);
				if(czyg)
				{
						cout<<i;
						return 0;
				}
		}
		cout<<6;
		return 0;
}
