#define _USE_MATH_DEFINES #include using namespace std; using ul = unsigned long long; using ll = long long; using ld = long double; using pll = pair; #define in(v,c) ((c).find(v) != (c).end()) #define F(i,n) for(ll i = ; i < (n); i++) #define Fun(i,n) for(ul i = ; i < (n); i++) #ifdef GPD templatevoid lerr(F&&f){cerr<(f)<void lerr(F&&f,R&&...r){cerr<(f)<<' ';lerr(forward(r)...);} #else #define lerr(...) #endif char arr [300007]; ll pref [300007]; ll suff [300007]; int main(int argc, char const *argv[]) { cin.tie(0)->sync_with_stdio(0); cout << setprecision(9) << fixed; lerr("ready"); ll n = 0; while(!cin.eof()){ cin >> arr[n]; ++n; } ll count = 999999999; for(ll i = 0; i < n; ++i){ if(arr[i] == '1'){ count = 0; } pref[i] = count; ++count; } count = 999999999; for(ll i = n-1; i >= 0; --i){ if(arr[i] == '1'){ count = 0; } suff[i] = count; ++count; } ll acc = 0; for(ll i = 0; i < n; ++i){ ll tmp = min(pref[i], suff[i]); acc = max(acc, tmp); } cout << acc << endl; return 0; }