#include <bits/stdc++.h>
using namespace std;
string x;
int n, res;
int get(int idx) {
  int s = 0;
  while (idx < n && x[idx++] == '0') ++s;
  return s;
}
int main() {
  cin >> x;
  n = x.size();
  string g;
  for (int i = 0; i < n; ++i) {
    if (i == n - 1) {
      if (x[i] == '0') continue;
      if (!g.size() || g.size() > 1 || (g.size() == 1 && g[0] >= x[i])) ++res;
    } else {
      int v = get(i + 1);
      int s = v + 1;
      if (!g.size() || s > g.size() || (s == g.size() && g[0] < x[i])) {
        g += x[i];
        ++i;
        for (int j = 0; j < v; ++j, ++i) g += x[j];
        --i;
        res = 1;
      } else {
        ++res;
        g += x[i];
        ++i;
        for (int j = 0; j < v; ++j, ++i) g += x[j];
        --i;
      }
    }
  }
  cout << res << endl;
  cin >> n;
}
