Pesho is crypting a permutation of numbers where each integer from to appears exactly once. He is using the following algorithm:
Replace each initial number with the -th prime number.
Choose a random positive integer , not greater than .
Consider all subsequences with consecutive elements. For each subsequence with at least elements write down the product of the smallest numbers.
Let be the number of unique products written in the previous step.
The code is " ".
Let us see how Pesho should crypt the permutation {, , , }:
. The first prime numbers are , , and . In the initial permutation he replaces
with the fourth prime number which is ;
with the first prime number which is ;
with the third prime number which is ;
with the second prime number which is .
Pesho obtains the new sequence , , , .
. He chooses a random number . Say = .
. All contiguous subsequences are:{}, {}, {}, {}, {, }, {, }, {, }, {, , }, {, , }, {, , , }
Pesho removes all subsequences with less than = elements and for each of the rest he computes the product of the smallest = elements
{, } * =
{, } * =
{, } * =
{, , } * =
{, , } * =
{, , , } * =
He writes the numbers {, , , , , }
. There are four unique numbers: {, , , }, thus = .
. The code is " ".
Pesho quickly figured out that the algorithm is much better than he expected. He cannot always decrypt the code unambiguously.
Write a program, which given a code calculates the number of possible initial permutations. Find the answer modulo .
One line contains the positive integers , (1 \leq k \leq n \leq 400) and ( ≤ ≤ 10^9).
Print the number of possible initial permutations with code " ". Print the answer modulo .
Example 1
Example 2
In the first example the permutations {, , } and {, , } can be encrypted as " ".
In the second example the permutations are {, , , }, {, , , }, {, , , }, {, , , }, {, , , }, {, , , }, {, , , }, {, , , }, {, , , }, {, , , }, {, , , }, {, , , }.