def solve(): M, D = input().split() mod = 1000000009 mk = max(len(M), len(D)) dp1 = [[0] * (mk * 9 + 1) for i in range(mk + 1)] # dp1[i][j] : i桁で総和がjになる数の総数 dp1[0][0] = 1 for i in range(mk): for j in range(mk * 9): if dp1[i][j] != 0: for k in range(10): dp1[i + 1][j + k] += dp1[i][j] dp1[i + 1][j + k] %= mod def c(xys, z): if len(xys) == 0: return 0 x = int(xys[0]) ys = xys[1:] a = 0 for i in range(x): if z - i < 0: break a += dp1[len(ys)][z - i] a += c(ys, z - x) return a ans = 0 for i in range(mk * 9 + 1): ans += c(M, i) * c(D, i) ans %= mod print(ans) if __name__ == '__main__': solve()