#include <bits/stdc++.h>
using namespace std;
const int inf = 0x7FFFFFFF;
template <class T>
T gcd(T a, T b) {
  return b == 0 ? a : gcd(b, a % b);
}
template <typename T>
T lcm(T a, T b) {
  return a / gcd(a, b) * b;
}
template <class T>
T big_mod(T n, T p, T m) {
  if (p == 0) return (T)1;
  T x = big_mod(n, p / 2, m);
  x = (x * x) % m;
  if (p & 1) x = (x * n) % m;
  return x;
}
template <class T>
T my_pow(T n, T p) {
  if (p == 0) return 1;
  T x = my_pow(n, p / 2);
  x = (x * x);
  if (p & 1) x = (x * n);
  return x;
}
template <class T>
inline T Mod(T n, T m) {
  return (n % m + m) % m;
}
template <class T>
T MIN(T a, T b, T c) {
  return min(a, min(b, c));
}
template <class T>
T MAX(T a, T b, T c) {
  return max(a, max(b, c));
}
int main() {
  string ss;
  cin >> ss;
  int pos = 0, zero = 0;
  for (int i = 0; i < ss.length(); i++) {
    if (ss[i] == '0')
      zero++;
    else
      pos = i + 1;
  }
  if (pos == 1)
    cout << ss.length() - 1 << endl;
  else
    cout << pos + 1 + zero << endl;
  return 0;
}
