Johnnie Walker is now in Bucharest! Even though it's getting late, he still wants to go for a walk. The neighbourhood Johnnie stays in can be represented as a complete undirected graph with vertices, where the streets are represented by edges and the intersections by vertices.
At any time, Johnnie can go to any intersection adjacent to the one he is in and it will take him exactly one minute to do so. Because our hero hates waiting he will not remain in the same intersection any number of minutes (every minute he will walk to another intersection).
Johnnie wonders how many walk paths are possible such that the walk will take exactly minutes and in the end he reaches the same intersection where the walk has begun.
At the beginning, Johnnie is in the intersection corresponding to the vertex labeled 1.
Two paths are considered different if there is a position where the corresponding intersections differ.
Johnnie may go through the same intersections multiple times during his walk.
Help him find the answer. As the value may be quite large you should only print it modulo .
Input data
The only line of the input contains two integers and , where is the number of intersections in the neighbourhood and is the number of minutes the walk should take
Output data
The single line of the output contains the number of walk paths modulo .
Constraints and clarifications
- ,
- For tests worth points, , .
- For tests worth extra points, .
- For tests worth extra points, .
Example 1
stdin
4 3
stdout
6
Explanation
The valid paths are:
Example 2
stdin
5 3
stdout
12
Example 3
stdin
100 15799
stdout
543264