A = [] B = [0] * 1000 for a in range(1000): c = a a3 = a % 10; a //= 10 a2 = a % 10; a //= 10 a1 = a if a1 > a2+a3: pass else: A.append(c) if a1 > a2+1: B[c] = 10-a3 else: B[c] = 100-a2*10-a3 def main(): n = int(input()) dp = [0] * 1000 m = str(n) le = len(m) for a in range(1, int(m[0])): dp[a] = 1 tmp = int(m[0]) f = 1 for i in range(1, le): ndp = [0] * 1000 for a in A: for b in range(10): c = (a*10+b) % 1000 ndp[c] += dp[a] dp = ndp if f: for b in range(int(m[i])): c = (tmp*10+b) % 1000 dp[c] += 1 tmp = (tmp*10+int(m[i])) % 1000 if B[tmp] == 0: f = 0 for b in range(1, 10): dp[b] += 1 if f: dp[tmp] += 1 ans = (n+1) * n // 2 #print(ans) for a in A: c = dp[a] ans += c*B[a] return ans % 998244353 for _ in range(int(input())): print(main())