#include using namespace std; #define pb push_back #define sqr(x) ((x) * (x)) #define fi first #define se second typedef pair ii; const int OO = 1e9 + 7; int Exp2(int a) { int res = 1; for (int i = 0; i < a; i++) res *= 2; return res; } int search_first_zero(vector v) { for (int i = 0; i < v.size(); i++) { if (v[i] == 0) return i; } return -1; } void Inp() { string s; cin >> s; vector n; if (s[0] == '0') { cout << -1 << endl; return; } for (char c : s) { if (c == '1') { n.push_back(1); } else if (c == '0') { n.push_back(0); } } int ret = 0; while (count(n.begin(), n.end(), 1) < n.size()) { int steps = search_first_zero(n); if (steps == -1) break; ret += 1; vector m = n; //cout << count(n.begin(), n.end(), 1) << endl; for (int i = 0; i < n.size() - steps; i++) { m[i + steps] = max(n[i], n[i + steps]); } n = m; steps *= 2; } cout << ret << endl; } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); Inp(); return 0; }