Hypercube Junior
An N-dimensional hypercube (or N-cube) with side length a > 0 is a geometric figure in N-dimensional Euclidean space, constructed as follows: Select any (N-1)-dimensional hyperplane within the N-dimensional space and construct an (N-1)-cube within it. From each vertex of this cube, draw a segment of length a perpendicular to the chosen plane, all in the same direction. The endpoints of these segments will also lie in an (N-1)-dimensional plane parallel to the original, forming another (N-1)-cube. The convex hull of all the vertices from both the original and the new (N-1)-cube forms the N-dimensional hypercube. By definition, a 0-cube is a point, which is the sole vertex of this cube. It is straightforward to see that a 1-cube is a line segment, a 2-cube is a square, and a 3-cube is the familiar three-dimensional cube. While hypercubes of higher dimensions are more challenging to visualize, they can be formally constructed as described.
A k-dimensional face (or k-face) of an N-dimensional hypercube is defined as an intersection with a k-dimensional hyperplane that does not contain interior points of faces of higher dimensions. Each N-cube has one k-face that coincides with itself. It can be shown that k-faces are k-cubes. 0-faces are the vertices of the N-cube, 1-faces are its edges, and so forth.
Your task is to calculate the number of k-dimensional faces of an N-dimensional hypercube.
Input
The input consists of a single line containing three integers N, k, and p (0 ≤ k ≤ N ≤ 10000, k ≤ 2000, 1 ≤ p ≤ 10^18).
Output
Output a single line with k+1 numbers: the remainder when the number of 0-faces, 1-faces, ..., k-faces of the N-cube is divided by p.