#include int main() { std::string s; std::cin >> s; std::reverse(s.begin(), s.end()); s.push_back('0'); int n = s.size(); int dp[n + 1][2]; for (int i = 0; i <= n; i++) dp[i][0] = dp[i][1] = 1000000000; dp[0][0] = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < 2; j++) { if (s[i] == '0' && !j) dp[i + 1][0] = std::min(dp[i + 1][0], dp[i][j]); else if (s[i] == '1' && j) dp[i + 1][1] = std::min(dp[i + 1][1], dp[i][j]); else dp[i + 1][0] = std::min(dp[i + 1][0], dp[i][j] + 1), dp[i + 1][1] = std::min(dp[i + 1][1], dp[i][j] + 1); } } std::cout << dp[n][0] << std::endl; return 0; }