
package DynamicProgramming;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BOJ_15988 {
static int t;
static long[] dp;
static BufferedReader br;
public static void main(String[] args) throws IOException {
br = new BufferedReader(new InputStreamReader(System.in));
t = Integer.parseInt(br.readLine());
dp = new long[1000001];
dp[0] = 1;
dp[1] = 1;
dp[2] = 2;
dp[3] = 4;
for (int i = 4; i < 1000001; i++) {
dp[i] = (dp[i - 1] + dp[i - 2] + dp[i - 3]) % 1000000009;
}
for (int i = 0; i < t; i++) {
int temp = Integer.parseInt(br.readLine());
System.out.println(dp[temp]);
}
}
}