#include <bits/stdc++.h>
using namespace std;
signed main() {
  long long n;
  cin >> n;
  long long d[10] = {0};
  long long tmp = n;
  string s;
  while (tmp) {
    d[tmp % 10]++;
    s.push_back('0' + tmp % 10);
    tmp /= 10;
  }
  if (n % 25 == 0) {
    cout << 0;
    return 0;
  }
  reverse(s.begin(), s.end());
  string str = s;
  long long mn = 1e18;
  if (d[0] >= 2) {
    long long ans = 0;
    tmp = s.size();
    for (long long i = tmp - 1; i >= 0; i--) {
      if (s[i] == '0') {
        ans += tmp - 1 - i;
        for (long long j = i; j < tmp - 1; j++) swap(s[j], s[j + 1]);
        break;
      }
    }
    for (long long i = tmp - 2; i >= 0; i--) {
      if (s[i] == '0') {
        ans += tmp - 2 - i;
        for (long long j = i; j < tmp - 2; j++) swap(s[j], s[j + 1]);
        break;
      }
    }
    mn = min(mn, ans);
  }
  if (d[0] >= 1 and d[5] >= 1 and
      (d[0] < (long long)str.size() - 1 || d[0] == 0)) {
    s = str;
    long long ans = 0;
    tmp = s.size();
    for (long long i = tmp - 1; i >= 0; i--) {
      if (s[i] == '0') {
        ans += tmp - 1 - i;
        for (long long j = i; j < tmp - 1; j++) swap(s[j], s[j + 1]);
        break;
      }
    }
    for (long long i = tmp - 2; i >= 0; i--) {
      if (s[i] == '5') {
        ans += tmp - 2 - i;
        for (long long j = i; j < tmp - 2; j++) swap(s[j], s[j + 1]);
        break;
      }
    }
    if (s[0] == '0') {
      long long i = 0;
      while (i < tmp and s[i] == '0') i++;
      ans += i;
    }
    mn = min(mn, ans);
  }
  if (d[2] >= 1 and d[5] >= 1 and
      (d[0] < (long long)str.size() - 2 || d[0] == 0)) {
    s = str;
    long long ans = 0;
    tmp = s.size();
    for (long long i = tmp - 1; i >= 0; i--) {
      if (s[i] == '5') {
        ans += tmp - 1 - i;
        for (long long j = i; j < tmp - 1; j++) swap(s[j], s[j + 1]);
        break;
      }
    }
    for (long long i = tmp - 2; i >= 0; i--) {
      if (s[i] == '2') {
        ans += tmp - 2 - i;
        for (long long j = i; j < tmp - 2; j++) swap(s[j], s[j + 1]);
        break;
      }
    }
    if (s[0] == '0') {
      long long i = 0;
      while (i < tmp and s[i] == '0') i++;
      ans += i;
    }
    mn = min(mn, ans);
  }
  if (d[7] >= 1 and d[5] >= 1 and
      (d[0] < (long long)str.size() - 2 || d[0] == 0)) {
    s = str;
    long long ans = 0;
    tmp = s.size();
    for (long long i = tmp - 1; i >= 0; i--) {
      if (s[i] == '5') {
        ans += tmp - 1 - i;
        for (long long j = i; j < tmp - 1; j++) swap(s[j], s[j + 1]);
        break;
      }
    }
    for (long long i = tmp - 2; i >= 0; i--) {
      if (s[i] == '7') {
        ans += tmp - 2 - i;
        for (long long j = i; j < tmp - 2; j++) swap(s[j], s[j + 1]);
        break;
      }
    }
    if (s[0] == '0') {
      long long i = 0;
      while (i < tmp and s[i] == '0') i++;
      ans += i;
    }
    mn = min(mn, ans);
  }
  if (mn == 1e18) mn = -1;
  cout << mn;
  return 0;
}
