#include <bits/stdc++.h>
using namespace std;
bool Check(long long N, int pos) { return (bool)(N & (1LL << pos)); }
long long Set(long long N, int pos) { return N = N | (1LL << pos); }
long long a[100], b[100];
map<long long, long long> mp, st;
int main() {
  long long int n, ii = 1, i, j, k, m, z = 0, c = 0, t, x, y, l, r, mid;
  cin >> n;
  m = n;
  i = 0;
  while (m) {
    a[i++] = m % 10;
    b[i - 1] = a[i - 1];
    m /= 10;
  }
  m = i;
  c = 0;
  k = 0;
  z = 1999999999;
  for (i = 0; i < m; i++) {
    if (a[i] == 0) {
      for (j = i - 1; j >= k; j--) {
        swap(a[j], a[j + 1]);
        c++;
      }
      k++;
      if (k == 2) break;
    }
  }
  if (k == 2) z = c;
  c = 0;
  for (i = 0; i < m; i++) a[i] = b[i];
  k = 0;
  for (i = 0; i < m; i++) {
    if (a[i] == 0) {
      for (j = i - 1; j >= 0; j--) {
        swap(a[j], a[j + 1]);
        c++;
      }
      k = 1;
      break;
    }
  }
  for (i = 0; i < m; i++) {
    if (a[i] == 5) {
      for (j = i - 1; j >= 1; j--) {
        swap(a[j], a[j + 1]);
        c++;
      }
      if (k == 1)
        k = 2;
      else
        k = 0;
      break;
    }
  }
  if (a[m - 1] == 0) {
    x = 0;
    for (i = m - 2; i >= 2; i--) {
      if (a[i] > 0) {
        for (; i < m - 1; i++) {
          swap(a[i], a[i + 1]);
          c++;
        }
        x = 1;
        break;
      }
    }
    if (x == 0) k = 0;
  }
  if (k == 2) z = min(z, c);
  c = 0;
  for (i = 0; i < m; i++) a[i] = b[i];
  k = 0;
  for (i = 0; i < m; i++) {
    if (a[i] == 5) {
      for (j = i - 1; j >= 0; j--) {
        swap(a[j], a[j + 1]);
        c++;
      }
      k = 1;
      break;
    }
  }
  for (i = 0; i < m; i++) {
    if (a[i] == 0) {
      for (j = i - 1; j >= 0; j--) {
        swap(a[j], a[j + 1]);
        c++;
      }
      if (k == 1)
        k = 2;
      else
        k = 0;
      break;
    }
  }
  if (a[m - 1] == 0) {
    x = 0;
    for (i = m - 2; i >= 2; i--) {
      if (a[i] > 0) {
        for (; i < m - 1; i++) {
          swap(a[i], a[i + 1]);
          c++;
        }
        x = 1;
        break;
      }
    }
    if (x == 0) k = 0;
  }
  if (k == 2) z = min(z, c);
  c = 0;
  for (i = 0; i < m; i++) a[i] = b[i];
  k = 0;
  for (i = 0; i < m; i++) {
    if (a[i] == 5) {
      for (j = i - 1; j >= 0; j--) {
        swap(a[j], a[j + 1]);
        c++;
      }
      k = 1;
      break;
    }
  }
  for (i = 0; i < m; i++) {
    if (a[i] == 7) {
      for (j = i - 1; j >= 1; j--) {
        swap(a[j], a[j + 1]);
        c++;
      }
      if (k == 1)
        k = 2;
      else
        k = 0;
      break;
    }
  }
  if (a[m - 1] == 0) {
    x = 0;
    for (i = m - 2; i >= 2; i--) {
      if (a[i] > 0) {
        for (; i < m - 1; i++) {
          swap(a[i], a[i + 1]);
          c++;
        }
        x = 1;
        break;
      }
    }
    if (x == 0) k = 0;
  }
  if (k == 2) z = min(c, z);
  c = 0;
  for (i = 0; i < m; i++) a[i] = b[i];
  k = 0;
  for (i = 0; i < m; i++) {
    if (a[i] == 7) {
      for (j = i - 1; j >= 0; j--) {
        swap(a[j], a[j + 1]);
        c++;
      }
      k = 1;
      break;
    }
  }
  for (i = 0; i < m; i++) {
    if (a[i] == 5) {
      for (j = i - 1; j >= 0; j--) {
        swap(a[j], a[j + 1]);
        c++;
      }
      if (k == 1)
        k = 2;
      else
        k = 0;
      break;
    }
  }
  if (a[m - 1] == 0) {
    x = 0;
    for (i = m - 2; i >= 2; i--) {
      if (a[i] > 0) {
        for (; i < m - 1; i++) {
          swap(a[i], a[i + 1]);
          c++;
        }
        x = 1;
        break;
      }
    }
    if (x == 0) k = 0;
  }
  if (k == 2) z = min(z, c);
  c = 0;
  for (i = 0; i < m; i++) a[i] = b[i];
  k = 0;
  for (i = 0; i < m; i++) {
    if (a[i] == 5) {
      for (j = i - 1; j >= 0; j--) {
        swap(a[j], a[j + 1]);
        c++;
      }
      k = 1;
      break;
    }
  }
  for (i = 0; i < m; i++) {
    if (a[i] == 2) {
      for (j = i - 1; j >= 1; j--) {
        swap(a[j], a[j + 1]);
        c++;
      }
      if (k == 1)
        k = 2;
      else
        k = 0;
      break;
    }
  }
  if (a[m - 1] == 0) {
    x = 0;
    for (i = m - 2; i >= 2; i--) {
      if (a[i] > 0) {
        for (; i < m - 1; i++) {
          swap(a[i], a[i + 1]);
          c++;
        }
        x = 1;
        break;
      }
    }
    if (x == 0) k = 0;
  }
  if (k == 2) z = min(c, z);
  c = 0;
  for (i = 0; i < m; i++) a[i] = b[i];
  k = 0;
  for (i = 0; i < m; i++) {
    if (a[i] == 5) {
      for (j = i - 1; j >= 0; j--) {
        swap(a[j], a[j + 1]);
        c++;
      }
      k = 1;
      break;
    }
  }
  for (i = 0; i < m; i++) {
    if (a[i] == 2) {
      for (j = i - 1; j >= 0; j--) {
        swap(a[j], a[j + 1]);
        c++;
      }
      if (k == 1)
        k = 2;
      else
        k = 0;
      break;
    }
  }
  if (a[m - 1] == 0) {
    x = 0;
    for (i = m - 2; i >= 2; i--) {
      if (a[i] > 0) {
        for (; i < m - 1; i++) {
          swap(a[i], a[i + 1]);
          c++;
        }
        x = 1;
        break;
      }
    }
    if (x == 0) k = 0;
  }
  if (k == 2) z = min(z, c);
  if (z == 1999999999) z = -1;
  cout << z << endl;
}
