#include <bits/stdc++.h>
using namespace std;
const int inf = 1e9 + 7;
const int maxn = 110;
char s[maxn], a[maxn];
int num[maxn], ans = inf, L;
void move(int x, int y) {
  int res = 0, i;
  for (i = 1; i <= L; i++) a[i] = s[i];
  if (a[L] != y) {
    for (i = L; i >= 1; i--)
      if (a[i] - '0' == y) break;
    for (; i < L; i++) {
      res++;
      swap(a[i], a[i + 1]);
    }
  }
  if (a[L - 1] != x) {
    for (i = L - 1; i >= 1; i--)
      if (a[i] - '0' == x) break;
    for (; i < L - 1; i++) {
      res++;
      swap(a[i], a[i + 1]);
    }
  }
  if (a[1] == '0') {
    for (i = 2; i <= L - 2; i++)
      if (a[i] != '0') break;
    if (i == L - 1) return;
    res += i - 1;
  }
  ans = min(ans, res);
}
int main() {
  bool f = false;
  scanf("%s", s + 1);
  L = strlen(s + 1);
  for (int i = 1; i <= L; i++) num[s[i] - '0']++;
  if (num[0] >= 2) {
    f = true;
    move(0, 0);
  }
  if (num[5] >= 1 && num[0] >= 1) {
    move(5, 0);
    f = true;
  }
  if (num[2] >= 1 && num[5] >= 1) {
    move(2, 5);
    f = true;
  }
  if (num[7] >= 1 && num[5] >= 1) {
    move(7, 5);
    f = true;
  }
  if (!f) {
    printf("-1\n");
    return 0;
  }
  printf("%d\n", ans);
  return 0;
}
