一月忘干净
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

在一个m行n列的棋盘里放一些彩色的棋子,使得每个格子最多放一个棋子,且不同

颜色的棋子不能在同一行或者同一列。有多少祌方法?例如,n=m=3,有两个白棋子和一

个灰棋子,下面左边两祌方法都是合法的,但右边两祌都是非法的。

输入描述:

输入第一行为两个整数n, m, c,即行数、列数和棋子的颜色数。
第二行包含c个正整数,即每个颜色的棋子数。
所有颜色的棋子总数保证不超过nm。

输出描述:

输出仅一行,即方案总数除以 1,000,000,009的余数。
示例1

输入

复制
4 2 2
3 1

输出

复制
8

备注:

,总棋子数