def preprocess(): '''1..9 の硬貨を使って、1..N を表す方法が何通りあるかを返す。 dp[k][n]: 1..k円の硬貨を使って、n 円を表すパターン数 とすると、 dp[k][0] = 1 dp[k][j] = dp[j][j] (if k > j) dp[1][n] = 1 dp[2][n] = sum(dp[1][n-2*i] for i in range(n//2)) = dp[2][n-2] + dp[1][n] = dp[2][n-2] + 1 dp[3][n] = sum(dp[2][n-3*i] for i in range(n//3)) = dp[3][n-3] + dp[2][n] dp[k][n] = dp[k][n-k] + dp[k-1][n] ''' M = 10**10 N = M // 111111 mod = 10**9 + 9 dp = [1] * (N + 1) for k in range(2, 10): new_dp = [0] * (N + 1) for i in range(k): new_dp[i] = dp[i] for i in range(k, N + 1): new_dp[i] = (new_dp[i - k] + dp[i]) % mod dp = new_dp cumdp = [] tmp = 0 for dpi in dp: tmp += dpi tmp %= mod cumdp.append(tmp) return cumdp def solve(m, dp): n = m // 111111 return dp[n] if __name__ == '__main__': dp = preprocess() T = int(input()) for t in range(T): m = int(input()) print(solve(m, dp))