High School Programming League 2008/2009

Rooks

Problem code: HS09WIE

You are given a checkerboard from which some fields have been removed.

checkerboard 9x9

One is allowed to place pieces only on the grey fields (which lie on five diagonal lines). Johny is wondering in how many ways can he put N rooks on such a restricted chessboard of width N so that no two rooks stay on the same row or column.

Input

In the first and only line of input there are two numbers — N and M (4 ≤ N, M ≤ 10 000 000),
representing the width of the chessboard and a number modulo which you are to output the result.

Output

Output should contain only one number - the number of ways of placing the rooks, modulo M.

Example

Input:
4 1000
Output:
14

Scoring

By solving this problem you will score 10 points.


Added by:Adam Dzedzej
Date:2009-09-16
Time limit:1s
Source limit:50000B
Languages:SED C99 strict C++ 4.0.0-8 C++ 4.3.2 TCL SCALA NICE NEM PHP SCM guile LISP sbcl LISP clisp ERL TECS TEXT DOC PDF PS PERL 6 JS
Resource:Thanks to Talent Association (www.talent.edu.pl)
SPOJ System © 2010 Sphere Research Labs. All Rights Reserved.