public class Euler865 {

    static final long MOD = 998244353L;

    static long modPow(long a, long e) {
        long r = 1;
        while (e > 0) {
            if ((e & 1) == 1)
                r = (r * a) % MOD;
            a = (a * a) % MOD;
            e >>= 1;
        }
        return r;
    }

    static long TMod(int N) {
        long[] U = new long[N + 1];
        long[] V = new long[N + 1];
        long[] E = new long[N + 1];
        E[0] = 1;

        for (int n = 1; n <= N; ++n) {
            long sumUV = 0;
            long sumUU = 0;
            for (int i = 0; i < n; ++i) {
                sumUV = (sumUV + U[i] * V[n - 1 - i]) % MOD;
                sumUU = (sumUU + U[i] * U[n - 1 - i]) % MOD;
            }

            long vn = (n == 1) ? 1 : 0;
            vn = (vn + 9 * sumUV) % MOD;
            V[n] = vn;

            long un = (V[n - 1] + 9 * sumUU) % MOD;
            U[n] = un;
        }

        for (int n = 1; n <= N; ++n) {
            long sumUE = 0;
            for (int i = 0; i < n; ++i) {
                sumUE = (sumUE + U[i] * E[n - 1 - i]) % MOD;
            }
            E[n] = (10 * sumUE) % MOD;
        }

        long sumE = 0;
        for (int n = 1; n <= N; ++n) {
            sumE += E[n];
            if (sumE >= MOD)
                sumE -= MOD;
        }

        long inv10 = modPow(10, MOD - 2);
        return (9 * inv10 % MOD * sumE) % MOD;
    }

    public static String solve() {
        return Long.toString(TMod(10000));
    }

    public static void main(String[] args) {
        System.out.println(solve());
    }
}
