#include <bits/stdc++.h>
using namespace std;
const int maxn = 10000 + 10;
const int maxc = 1e5 + 7;
const int maxx = 1e7;
char s[maxc];
const int mod = 1e9 + 7;
long long pow1(long long a, long long b) {
  if (b == 0)
    return 1;
  else {
    long long ans = pow1(a, b / 2) % mod;
    if ((b & 1) == 0)
      return ((ans % mod) * (ans % mod)) % mod;
    else
      return ((((ans % mod) * (ans % mod)) % mod) * a) % mod;
  }
}
int pos[maxc];
int main() {
  long long k;
  while (scanf("%s", s) != EOF) {
    cin >> k;
    int c = 0;
    long long len = strlen(s);
    for (int i = 0; i < len; i++) {
      if (s[i] == '0' || s[i] == '5') {
        pos[c++] = i;
      }
    }
    long long ans = 0;
    long long temp = (pow1(2, len * k) % mod - 1) % mod;
    long long temp1 = (pow1(2, len) % mod - 1) % mod;
    temp = (temp * pow1(temp1, mod - 2)) % mod;
    for (int i = 0; i < c; i++) {
      ans =
          ((ans % mod) + ((temp * (pow1(2, pos[i]) % mod)) % mod) % mod) % mod;
    }
    cout << ans << endl;
  }
  return 0;
}
