#include #include #include using namespace std; typedef uint64_t u64; int ss; int det(u64 n){ int min=41,h; int l = __builtin_clzll(~n); //cout << l << endl; if (__builtin_popcountll(n) == ss) return 0; for(int i = 1; i <= l; i++) { h = det(((n | n >> i) >> (64 - ss)) << (64 - ss)); if (h < min) min = h; if (min == 0) break; } return min + 1; } int main(){ std::ios_base::sync_with_stdio(false); string s; cin >> s; if (s[0] == '0') cout << -1 << '\n'; else { ss = s.size(); bitset<40> bs(ss); int n = det(bs.to_ullong() << (64 - ss)); cout << n << '\n'; } }