Mocha 的手套收藏
题号:NC218869
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

Bazoka13 和 Mocha 分 双不同的手套,每次可以进行以下两种操作之一:
  • 将一双手套拆开后,一人分走一只。
  • 取出两双不同的手套,一人分走一双。
对于第一种操作,我们将两只手套视为相同的手套。
求分配手套的方案数对 取模的结果,我们认为两种方案不同,当且仅当存在一双手套,它在一种方案中 Bazoka13 拥有的数量与在另一种方案中 Bazoka13 拥有的数量不同。

输入描述:

仅有一行,两个正整数  () ,表示手套的数量和需要对方案数取模的模数。

输出描述:

一个非负整数,分配手套的方案数对  取模的结果。
示例1

输入

复制
1 100

输出

复制
1

说明

只有一双手套,只能进行第一种操作,因此只有一种方案。
示例2

输入

复制
2 100

输出

复制
3

说明

设两双手套分别为手套  和手套 ,Bazoka13 最后得到的结果有两只 ,两只 ,一只  一只  这三种,因此有三种方案。