Yotsugi 正在玩一个高度为 $h$、宽度为 $w$ 的网格 $A$,该网格最初全部填充为 $0$。她按某种顺序执行以下两种操作:
- 选择值 $i, j$($0 \le i \le h - 1, 0 \le j \le w - 1$)以及符号 $+$ 或 $-$,并将 $A_{i,j}, A_{i,j+1}, A_{i+1,j}, A_{i+1,j+1}$ 的值相应地修改为 $A_{i,j} \pm 2, A_{i,j+1} \pm 1, A_{i+1,j} \pm 1, A_{i+1,j+1} \pm 2$,其中 $\pm$ 被替换为所选的符号。在这里,Yotsugi 认为 $A_{h,j}$ 等价于 $A_{0,j}$,$A_{i,w}$ 等价于 $A_{i,0}$。换句话说,她将网格视为一个环面(torus)。
- 选择值 $i, j$($0 \le i \le h-1, 0 \le j \le w-1$)以及符号 $+$ 或 $-$,并将 $A_{i,j}, A_{i,j+1}, A_{i,j+2}, A_{i+1,j}, A_{i+1,j+1}, A_{i+1,j+2}, A_{i+2,j}, A_{i+2,j+1}, A_{i+2,j+2}$ 的值相应地修改为 $A_{i,j} \pm 2, A_{i,j+1} \pm 5, A_{i,j+2} \pm 2, A_{i+1,j} \pm 5, A_{i+1,j+1} \pm 5, A_{i+1,j+2} \pm 5, A_{i+2,j} \pm 2, A_{i+2,j+1} \pm 5, A_{i+2,j+2} \pm 2$,其中 $\pm$ 被替换为所选的符号。与前一个操作相同,Yotsugi 将网格视为一个环面。
为了更容易理解这些操作,请参考说明部分。
第二天,网格被喷火蛞蝓吃掉了。现在 Yotsugi 想知道,如果她在完成所有操作后,网格中所有的值 $A_{i,j}$ 都在 $[0, k]$ 范围内,那么她可能得到多少种不同的网格?请注意,当 Yotsugi 在执行操作时,值 $A_{i,j}$ 可以是负数或超过 $k$。由于答案可能很大,请帮她求出答案对 $10^9 + 9$ 取模后的结果。
输入格式
第一行包含三个整数 $h, w, k$($3 \le h, w \le 1000, 1 \le k \le 10^9$)—— 网格的大小以及网格中允许的最大值。
输出格式
输出该问题的答案对 $10^9 + 9$ 取模后的结果。
样例
输入样例 1
3 3 1
输出样例 1
2
输入样例 2
4 4 52
输出样例 2
972950693
输入样例 3
7 10 123
输出样例 3
93519598
说明
例如,如果我们有一个 $4 \times 4$ 的矩阵,我们可以按以下方式应用操作:
使用符号 $-$ 应用第一次操作。
使用符号 $+$ 应用第二次操作。
使用符号 $+$ 应用第一次操作。
使用符号 $+$ 应用第一次操作。
由于所有值都在 $[0, 42]$ 范围内,因此这是在第二个样例中需要统计的矩阵之一。