#include <bits/stdc++.h>
using namespace std;
inline void normal(long long &a) {
  a %= 1000000007;
  (a < 0) && (a += 1000000007);
}
inline long long modMul(long long a, long long b) {
  a %= 1000000007, b %= 1000000007;
  normal(a), normal(b);
  return (a * b) % 1000000007;
}
inline long long modAdd(long long a, long long b) {
  a %= 1000000007, b %= 1000000007;
  normal(a), normal(b);
  return (a + b) % 1000000007;
}
inline long long modSub(long long a, long long b) {
  a %= 1000000007, b %= 1000000007;
  normal(a), normal(b);
  a -= b;
  normal(a);
  return a;
}
inline long long modPow(long long b, long long p) {
  long long r = 1;
  while (p) {
    if (p & 1) r = modMul(r, b);
    b = modMul(b, b);
    p >>= 1;
  }
  return r;
}
inline long long modInverse(long long a) { return modPow(a, 1000000007 - 2); }
inline long long modDiv(long long a, long long b) {
  return modMul(a, modInverse(b));
}
int main() {
  string s;
  cin >> s;
  long long k, n, meo1, meo2;
  n = s.size();
  cin >> k;
  long long res, res1 = 0, fin, m1, m2, ans = 0ll, i;
  for (i = 0; i < n; i++) {
    if (s[i] == '5' || s[i] == '0') {
      res = modDiv(modSub(modPow(modPow(2, n), k), 1), modSub(modPow(2, n), 1));
      fin = modMul(modPow(2ll, i), res);
      ans = modAdd(ans, fin);
    }
  }
  cout << ans << '\n';
}
