101353: [AtCoder]ABC135 D - Digits Parade

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Score : $400$ points

Problem Statement

Given is a string $S$. Each character in $S$ is either a digit (0, ..., 9) or ?.

Among the integers obtained by replacing each occurrence of ? with a digit, how many have a remainder of $5$ when divided by $13$? An integer may begin with $0$.

Since the answer can be enormous, print the count modulo $10^9+7$.

Constraints

  • $S$ is a string consisting of digits (0, ..., 9) and ?.
  • $1 \leq |S| \leq 10^5$

Input

Input is given from Standard Input in the following format:

$S$

Output

Print the number of integers satisfying the condition, modulo $10^9+7$.


Sample Input 1

??2??5

Sample Output 1

768

For example, $482305, 002865,$ and $972665$ satisfy the condition.


Sample Input 2

?44

Sample Output 2

1

Only $044$ satisfies the condition.


Sample Input 3

7?4

Sample Output 3

0

We may not be able to produce an integer satisfying the condition.


Sample Input 4

?6?42???8??2??06243????9??3???7258??5??7???????774????4?1??17???9?5?70???76???

Sample Output 4

153716888

Input

题意翻译

给定的是字符串 S。S 中的每个字符都是数字(`0`,...,`9`)或 `?`。 在通过用数字替换每次出现的 `?` 而获得的整数中,当除以 $13$ 时有多少个余数为 $5$?整数可以以 $0$ 开头。 由于答案可能非常巨大,因此输出是要模 $10^{9} + 7$

加入题单

算法标签: