#include using namespace std; #define rep(i, n) for (int i = 0; i < (n); ++i) using ll = long long; using ull = unsigned long long; #include using mint = atcoder::modint998244353; int main() { cin.tie(nullptr)->sync_with_stdio(false); string s; cin >> s; vector dp(s.size() + 1, vector(2, vector(2, 0))); dp[0][1][0] = 1; rep(i, s.size()) { int d = s[i] - '0'; rep(eq, 2) rep(cont, 2) { for (int dig = 0; dig <= (eq ? d : 9); dig++) { dp[i + 1][eq && (dig == d)][cont || (dig == 8)] += dp[i][eq][cont]; } } } cout << (dp[s.size()][0][1] + dp[s.size()][1][1]).val() << '\n'; return 0; }