import sys, time, random from collections import deque, Counter, defaultdict input = lambda: sys.stdin.readline().rstrip() ii = lambda: int(input()) mi = lambda: map(int, input().split()) li = lambda: list(mi()) inf = 2 ** 61 - 1 mod = 998244353 import string n = input() #桁dp #dp dp = [[[0] * (1024) for _ in range(2)] for _ in range(2)] dp[0][0][0] = 1 for i in range(len(n)): e = [[[0] * (1024) for _ in range(2)] for _ in range(2)] for lessflag in range(2): for zeroflag in range(2): for bit in range(1024): for x in range(10): if lessflag == 0 and x > int(n[i]): continue tlessflag = lessflag | (x < int(n[i])) tzeroflag = zeroflag | (x > 0) if tzeroflag == 0: e[tlessflag][tzeroflag][bit] += dp[lessflag][zeroflag][bit] e[tlessflag][tzeroflag][bit] %= mod else: e[tlessflag][tzeroflag][bit ^ (1 << x)] += dp[lessflag][zeroflag][bit] e[tlessflag][tzeroflag][bit ^ (1 << x)] %= mod dp = e c = 0 for v in n: c ^= 1 << int(v) if c == 0: dp[1][1][0] += 1 print(dp[1][1][0] % mod)