Hide

# Problem HOrdinary Ordinals

Sets, sets, sets. Everything in math is just a set. Even the natural numbers can be represented as sets. For example, we can represent the the number $0$ as the empty set $\{ \}$. The number $1$ can be represented as $\{ \{ \} \}$.

But what about $2$? Consider $\{ \{ \} , \{ \{ \} \} \}$, the set containing both the empty set and $\{ \{ \} \}$. This is a nice choice for $2$ for two reasons: we have that $0$ and $1$ are elements of $2$ and we also have that $0$ and $1$ are subsets of $2$.

In general, for $N>0$ we can represent $N$ as the set $\{ 0, 1, \ldots , N-1\}$ where we recursively apply the representations for $0, \ldots , N-1$. For example:

\begin{eqnarray*} 3 & = & \{ 0, 1, 2\} \\ & = & \{ \{ \} , \{ 0\} , \{ 0, 1\} \} \\ & = & \{ \{ \} , \{ \{ \} \} , \{ \{ \} , \{ 0\} \} \} \\ & = & \{ \{ \} , \{ \{ \} \} , \{ \{ \} , \{ \{ \} \} \} \} \end{eqnarray*}

Thus, for each $0 \leq i < N$, $i$ is both a member of $N$ and a subset of $N$. Another nice feature is the size of the set representing $N$ is also $N$. But what is not so nice is the number of characters it takes to write such a set. Given a natural number $N \geq 0$, how many braces and commas are required to write out the set representing $N$ in the above manner?

More specifically, let $f(N)$ be the number of bracket and comma characters required to write out the set representing $N$. Since $f(N)$ can be quite large, your job is to determine $f(N)$ modulo some positive integer $M$.

## Input

Input consists of two integers $N$ ($0 \leq N < 2^{63}$) and $M$ ($1 \leq M < 2^{31}$) as described above.

## Output

Display the value of $f(N)$ reduced modulo $M$. That is, the remainder that would be left if you divided $f(N)$ by $M$.

Sample Input 1 Sample Output 1
2 100

9

Sample Input 2 Sample Output 2
3 100

19

Sample Input 3 Sample Output 3
3 7

5

Sample Input 4 Sample Output 4
1000000000 1000000007

851562505