import sys input = sys.stdin.readline S = list(map(int, list(input())[: -1])) mod = 10 ** 9 + 7 ln = len(S) dp = [[0] * 9 for _ in range(ln + 1)] dp[1][0] = 1 dplim = [[0] * 9 for _ in range(ln + 1)] dplim[0][0] = 1 for i in range(ln): x = S[i] if i + 1 >= 2: dp[i + 1][0] += 1 for two in range(3): for five in range(3): j = two * 3 + five if x: if x % 2 == 0 and x % 4 != 0: dplim[i + 1][min(2, two + 1) * 3 + five] += dplim[i][j] dplim[i + 1][min(2, two + 1) * 3 + five] %= mod elif x % 4 == 0: dplim[i + 1][min(2, two + 2) * 3 + five] += dplim[i][j] dplim[i + 1][min(2, two + 2) * 3 + five] %= mod elif x % 5 == 0: dplim[i + 1][two * 3 + min(2, five + 1)] += dplim[i][j] dplim[i + 1][two * 3 + min(2, five + 1)] %= mod else: dplim[i + 1][j] += dplim[i][j] dplim[i + 1][j] %= mod for k in range(1, x): if k % 2 == 0 and k % 4 != 0: dp[i + 1][min(2, two + 1) * 3 + five] += dplim[i][j] dp[i + 1][min(2, two + 1) * 3 + five] %= mod elif k % 4 == 0: dp[i + 1][min(2, two + 2) * 3 + five] += dplim[i][j] dp[i + 1][min(2, two + 2) * 3 + five] %= mod elif k % 5 == 0: dp[i + 1][two * 3 + min(2, five + 1)] += dplim[i][j] dp[i + 1][two * 3 + min(2, five + 1)] %= mod else: dp[i + 1][j] += dplim[i][j] dp[i + 1][j] %= mod for k in range(1, 10): if k % 2 == 0 and k % 4 != 0: dp[i + 1][min(2, two + 1) * 3 + five] += dp[i][j] dp[i + 1][min(2, two + 1) * 3 + five] %= mod elif k % 4 == 0: dp[i + 1][min(2, two + 2) * 3 + five] += dp[i][j] dp[i + 1][min(2, two + 2) * 3 + five] %= mod elif k % 5 == 0: dp[i + 1][two * 3 + min(2, five + 1)] += dp[i][j] dp[i + 1][two * 3 + min(2, five + 1)] %= mod else: dp[i + 1][j] += dp[i][j] dp[i + 1][j] %= mod print((dp[-1][-1] + dplim[-1][-1]) % mod)