


//package clockwork;

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
import java.util.HashMap;

public class Clockwork {

    static int countOnes(long x) {
        int count = 0;
        for (int i = 0; i < 40; i++)
           if (((x >> i) & 1) == 1) count++;
        return count;
    }
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        char[] line = sc.nextLine().toCharArray();
        if (line[0] == '0') {
            System.out.println(-1);
        }
        else {
            long x = 0;
            long mask = 1;
            long res = 0;
            
            for (int i = line.length - 1; i >= 0; i--) {
                if (line[i] == '1')
                    x |= mask;
                res |= mask;
                mask <<= 1;
            }
            //System.out.println(res);
            HashMap<Long, Integer> used = new HashMap<>();
            Queue<Long> que = new LinkedList<>();
            
            used.put(x, 0);
            que.add(x);
            
            while (!que.isEmpty()) {
               long curr = que.poll();
               
//               System.out.println(curr);
               if (curr == res) {
                   //System.out.println("Found!");
                   System.out.println(used.get(curr));
                   break;
               }
               for (int i = 1; i < line.length; i++) {
                   long next = curr | (curr >> i);
               
                   if (used.get(next) == null) {
                       used.put(next, used.get(curr) + 1);
                       que.add(next);
                   }
               }
            }
            //System.out.println("Done");
            //System.out.println(x);
            //System.out.println(countOnes(x));
        }
    }  
}
