#NC2401A. A Bit Common

A Bit Common

题目描述

给定两个整数 nnmm,在所有包含 nn 个非负整数且每个整数都小于 2m2^m 的序列中,你需要计算满足以下条件的序列 AA 的数量:存在一个 AA 的非空子序列,其中所有整数的按位与运算结果为 11

注意,序列 AA 的非空子序列是指通过从 AA 中删除零个或多个元素(保持剩余元素的原始顺序)得到的非空序列。

由于答案可能非常大,请将其对一个正整数 qq 取模后输出。

非负整数 AABB 的按位与运算 A & BA\ \&\ B 定义如下:

  • A & BA\ \&\ B 以二进制表示时,2d2^d 位(d0d≥0)的数字为 11 当且仅当 AABB 在该位均为 11,否则为 00

例如,4 & 6=44\ \&\ 6 = 4(二进制表示为 100 & 110=100100\ \&\ 110 = 100)。

一般情况下,kk 个非负整数 p1,p2,,pkp_1,p_2,…,p_k 的按位与运算定义为 (((p1 & p2) & p3)&& pk)(…((p_1\ \&\ p_2)\ \&\ p_3)\& … \&\ p_k),并且可以证明该值与 p1,p2,,pkp_1,p_2,…,p_k 的顺序无关。

输入格式

一行包含三个整数 nn (1n5000)(1≤n≤5000)mm (1m5000)(1≤m≤5000)qq (1q109)(1≤q≤10^9)

输出格式

输出一行一个整数,表示答案。

2 3 998244353
17
5000 5000 998244353
2274146