SUMFACT - Tổng Giai Thừa
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 2.0 giây
Giới hạn bộ nhớ: 256 megabyte
Đăng bởi: cuom1999

Một ngày rảnh rỗi, Ami, Thánh Ngốc và zxa cùng ôn lại kỷ niệm xưa bằng cách giải lại đề thi tuyển sinh lớp 10 chuyên Lê Quý Đôn 2016-2017. Trong đó có bài toán đơn giản như sau: Cho một số nguyên dương n. Hãy tính xem có bao nhiêu cách biểu diễn n thành tổng của một số số nguyên dương liên tiếp, đồng thời tổng đó phải chứa ít nhất 2 số hạng (không tính cách biểu diễn n = n).

Hai cách biểu diễn được xem là khác nhau nếu có 1 số nguyên dương nằm trong cách này nhưng không xuất hiện trong cách còn lại.

Trong Contest 11 lần này, các bạn hãy giải bài toán trên cho n! (= 1*2*3*...*n) thay vì n như đề gốc. Vì đáp số có thể rất lớn, hãy in ra số dư của kết quả khi chia cho M. 

Dữ liệu vào

Gồm 1 dòng duy nhất chứa 2 số nguyên dương n, m (1 <= n <= 10^6, 2 <= M <= 10^9 + 7).

Dữ liệu ra

Một số nguyên dương là đáp số bài toán ứng với n!. 

 

 

Ví dụ

Input 1

2 100

Output 1

Input 2

3 100

Output 2

Input 3

5 3

Output 3

Giải thích

2! = 2: không có cách biểu diễn nào

3! = 1*2*3 = 1 + 2 + 3: 1 cách

5! = 1 + 2 + ... + 15 = 22 + 23 + 24 + 25 + 26 = 39 + 40 + 41 -> 3 cách, in ra 3 mod 3 = 0

Back to Top