数位操作2
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给了你一个极端大的数据集合的信息
N, SUM, X 如下

  1. 这个数据集合里面的N位, 每一数位求和之后刚好等于SUM (比如四位数 1234 数位求和之后是 10);

  2. 它们都有N位, 十进制的(每一位都在0~9), 我们这里降低点难度, 特别容许前导0的存在. 1234, 0123 都是合理的数;

  3. 这N位长度的数字字符串, 任意连续的三位数字构成的数据都能被X整除.
PS: 有可能 有空数据集

现在输出所有的数据是不可能了, 
为了减低难度你只要求出原来数据集合内有多少数据 mod 1000009 就好

输入描述:

N(3 <= N <= 50), SUM,X(1 <= X <= 999);

输出描述:

对满足以上数据个数 取 mod 1000009
示例1

输入

复制
4 3 3

输出

复制
6

说明

3000
0300
0030
0003
0120
0210