#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
const int maxm = 1e3 + 5;
const int mod = 1e9 + 7;
char st[maxn];
long long quickpow(long long n, long long k) {
  long long ans = 1;
  while (k) {
    if (k & 1) ans = (ans * n) % mod;
    n = (n * n) % mod;
    k /= 2;
    ans %= mod;
  }
  return ans % mod;
}
long long exgcd(long long a, long long b, long long& x, long long& y) {
  if (b == 0) {
    x = 1;
    y = 0;
    return a;
  }
  long long res = exgcd(b, a % b, y, x);
  y -= a / b * x;
  return res;
}
long long getInv(long long a, long long mod) {
  long long x, y;
  long long res = exgcd(a, mod, x, y);
  return res = 1 ? (x % mod + mod) % mod : -1;
}
int main() {
  scanf("%s", st);
  long long n, l = 0;
  scanf("%lld", &n);
  long long len = strlen(st);
  long long cnt = 0;
  for (int i = 0; i < len; i++) {
    if (st[i] == '0' || st[i] == '5') cnt += quickpow(2, i);
    cnt %= mod;
  }
  long long lps = cnt * (quickpow(2, len * n) - 1) % mod;
  printf("%lld\n", lps * getInv(quickpow(2, len) - 1, mod) % mod);
  return 0;
}
