Logo Universal Online Judge

UOJ

时间限制:3 s 空间限制:1024 MB
统计

问题描述

你正在打 $\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$。