AT_arc221_b [ARC221B] Two-Powered Sum

题目描述

给定一个正整数 $N$ 和一个素数 $P$。 有一个长度为 $N$ 的序列 $A=(A_1,A_2,\ldots,A_N)$,其中所有元素初始均为 $0$。 你可以重复以下操作任意次(也可以一次都不做): - 选择 $\lbrace 1,2,\ldots,N\rbrace$ 的一个非空子集 $S$。令 $x=\sum_{i\in S}2^{i-1}$。对于每个 $i\in S$,将 $A_i$ 替换为 $x$。 请你计算,经过任意次操作后,可能得到的序列 $A$ 的方案数,结果对 $P$ 取模。

输入格式

输入通过标准输入按如下格式给出: > $N$ $P$

输出格式

输出答案。

说明/提示

### 样例解释 1 可能的序列 $A$ 有 $(0),(1)$,共有两种可能。 ### 样例解释 2 可能的序列 $A$ 有 $(0,0),(0,2),(1,0),(1,2),(1,3),(3,2),(3,3)$,共有七种可能。 ### 数据范围 - $1\leq N\leq 700$ - $P$ 是满足 $10^8\lt P\lt 10^9$ 的素数。 - 所有输入均为整数。 由 ChatGPT 5 翻译