Bobo is participating in a weird tournament with $$$2n$$$ players, labeled $$$1$$$ through $$$2n$$$. Initially, all players have a score of zero. The tournament consists of $$$k$$$ rounds, and in each round, players are paired for one-on-one matches.
The scoring mechanism is as follows: after each match, the player with the higher score loses $$$1$$$ point, while the player with the lower score gains $$$1$$$ point. If two players have the same score, the player with the lower label (i.e., the smaller number) is considered the winner and gains $$$1$$$ point, while the other player loses $$$1$$$ point.
To ensure balance and to make the tournament more exciting, the host decided that the absolute value of any player's score must never exceed $$$3$$$ at any point in the tournament. Given these rules, Bobo wants to determine the number of possible ways to arrange the matches over the $$$k$$$ rounds.
As the answer might be too large, you should output the answer modulo $$$P$$$, which is a specified prime number.
The first line of input contains three integers $$$n,k,P$$$ $$$(1\leq n\leq 400,1\leq k\leq 20, 10^8\leq P\leq 10^9+9)$$$, whose meaning is already clear in the statement.
It is guaranteed that $$$P$$$ is a prime.
Output an integer in one line, denoting the answer.
3 1 1000000007
15
100 3 1000000007
894710378
6 6 1000000007
103387851
2 6 998244353
729