#include #include #include #include #include #include #include #include #include #include using namespace std; #define MOD 1000000007 int main() { string N; cin >> N; long long A = N.size(); long long dp[10010][100]; long long dp2[10010][100]; for (int i = 0; i < A; i++) for (int j = 0; j < 100; j++) dp[i][j] = 0; for (int i = 0; i < A; i++) for (int j = 0; j < 100; j++) dp2[i][j] = 0; for (int i = 0; i < A; i++) { if (i == 0) { dp[i][N[i] - '0'] = 1; for (int j = 1; j < N[i] - '0'; j++) { dp2[i][j] = 1; } } else { for (int j = 1; j < 9; j++) { dp2[i][j] += 1; } for (int j = 0; j < 100; j++) { if (N[i] - '0' != 0) dp[i][j * (N[i] - '0') % 100] += dp[i - 1][j]; for (int k = 1; k < N[i] - '0'; k++) { dp2[i][j * k % 100] += dp[i - 1][j]; } for (int k = 1; k <= 9; k++) { dp2[i][j * k % 100] += dp2[i - 1][j]; } } for (int j = 0; j < 100; j++) { dp[i][j] %= MOD; dp2[i][j] %= MOD; } } } cout << (dp[A - 1][0] + dp2[A - 1][0]) % MOD << endl; }