#include #include #include using namespace std; typedef long long ll; const ll MOD = 1000 * 1000 * 1000 + 9; const ll MAX_M = 10000000000LL; const auto PRICE1 = 111111; int main() { int T; cin >> T; static vector count(MAX_M / PRICE1 + 1, 0); count[0] = 1; for (auto price = 1; price <= 9; price++) { for (auto use = 0; use < count.size(); use++) { if (use - price < 0) continue; count[use] += count[use - price]; count[use] %= MOD; } } // 累積和を計算 for (auto use = 0; use < count.size(); use++) { if (use > 0) { count[use] += count[use - 1]; count[use] %= MOD; } } while (T--) { ll M; cin >> M; cout << count[M / PRICE1] << endl; } return 0; }