问题描述
你正在打 $\color{#FFFFFF}{galgame}$,突然家长进来了,于是你只能假装在写数据结构题。
[因为不看番所以省略了本应该存在的 anime pictures]。
你有一个 $n \times m$ 的矩形网格图。你有一些骨牌,每个形如 $1\times 2$ 的矩形,一端为黑色,一端为白色。
你要用骨牌填满网格图。
请数出最后有多少种不同的网格图。
两个网格图不同,定义为存在至少一个网格使得它们的颜色不同。
答案对 $P$ 取模。注意不保证 $P$ 为质数。
输入格式
一行,三个整数 $n,m,P$。
输出格式
一行,一个整数,表示答案。
样例 $1$ 输入
2 3 10
样例 $1$ 输出
6
样例 $2$ 输入
3 296 1000000007
样例 $2$ 输出
849954233
数据规模与约定
样例中一共有 16 种方案,对 10 取模后为 6。
本题共有 25 个测试点。每个测试点 4 分。
对于第 $i$ 个测试点,$n=\min(\lfloor\dfrac{i}{4}\rfloor + 1,6),m\le 75 \times ((i~mod~4) + 1)$。
对于编号为偶数的测试点,$P = 10^9 + 7$,对于其余测试点,$1 \le P \le 10^9 + 7$。
对于编号被 3 整除的测试点,有 $m \le n$。