MOD = 998244353 def func(n, c): return n//10**c%10 for _ in range(int(input())): N, X = map(int, input().split()) L = len(str(N)) dp = [[[[0]*20 for _ in range(2)] for _ in range(2)] for _ in range(2)] for i in range(2): for j in range(2): dp[i][j][0][0] = 1 for i in range(L): ndp = [[[[0]*20 for _ in range(2)] for _ in range(2)] for _ in range(2)] n = func(N, i) for j in range(2): for k in range(2): for l in range(2): for m in range(20): if dp[j][k][l][m] == 0: continue if j == 0: order1 = range(0, 10) else: order1 = range(n, n+1) if k == 0: order2 = range(0, 10) else: order2 = range(n, n+1) for o in order1: for p in order2: ndp[j][k][10 <= o+p+l][m+(10 <= o+p+l)] += dp[j][k][l][m] ndp[j][k][10 <= o+p+l][m+(10 <= o+p+l)] %= MOD a = o < n b = p < n if a: ndp[1][k][10 <= o+p+l][m+(10 <= o+p+l)] += dp[j][k][l][m] ndp[1][k][10 <= o+p+l][m+(10 <= o+p+l)] %= MOD if b: ndp[j][1][10 <= o+p+l][m+(10 <= o+p+l)] += dp[j][k][l][m] ndp[j][1][10 <= o+p+l][m+(10 <= o+p+l)] %= MOD if a and b: ndp[1][1][10 <= o+p+l][m+(10 <= o+p+l)] += dp[j][k][l][m] ndp[1][1][10 <= o+p+l][m+(10 <= o+p+l)] %= MOD dp = ndp print((dp[1][1][0][X]+dp[1][1][1][X])%MOD)