#include <bits/stdc++.h>
using namespace std;
int n, ans = INT_MAX, cur;
char x[30], y[30];
void go(int a, int b, int c) {
  cur = a;
  memcpy(y, x, n);
  for (int i = a; i; i--) swap(y[i - 1], y[i]);
  for (int i = n - 1; i; i--)
    if (y[i] == c) {
      cur += n - 1 - i;
      for (int j = i; j < n - 1; j++) swap(y[j], y[j + 1]);
      break;
    } else if (i == 1)
      return;
  for (int i = n - 2; i; i--)
    if (y[i] == b) {
      cur += n - 2 - i;
      for (int j = i; j < n - 2; j++) swap(y[j], y[j + 1]);
      break;
    } else if (i == 1)
      return;
  ans = min(ans, cur);
}
int main() {
  scanf("%s", x);
  n = strlen(x);
  if (n == 1)
    printf("-1\n");
  else if (n == 2) {
    if (x[0] == '2' && x[1] == '5')
      printf("0\n");
    else if (x[0] == '5' && x[1] == '0')
      printf("0\n");
    else if (x[0] == '7' && x[1] == '5')
      printf("0\n");
    else if (x[0] == '5' && x[1] == '2')
      printf("1\n");
    else if (x[0] == '5' && x[1] == '7')
      printf("1\n");
    else
      printf("-1\n");
  } else {
    for (int i = 0; i < n; i++)
      if (x[i] != '0') {
        go(i, '0', '0');
        go(i, '2', '5');
        go(i, '5', '0');
        go(i, '7', '5');
      }
    if (ans == INT_MAX) ans = -1;
    printf("%d\n", ans);
  }
  return 0;
}
