#autumnfest04. [autumn_fest_04]Don't Think Seriously!

[autumn_fest_04]Don't Think Seriously!

题目描述

数列{Ai}\{A_i\}定义如下:

  • a1=0a_1=0
  • a2=1a_2=1
  • i>0i>0 时, Ai+2=Ai+12+Ai2A_{i+2}=A^2_{i+1}+A^2_i

AnA_n 除以整数 MM 的余数。

输入格式

n M

输出格式

输出AnA_n 除以整数 MM 的余数。

数据范围

  • 1n2311 \le n \le 2^{31}
  • M=1999M=1999M=109+7M=10^9+7
  • 输入值都是整数。

对于这个问题的判断,设定了一组30分的测试点。包含在该组中的测试用例除了满足上面的条件之外,还要满足下面的条件。

  • M=1999M=1999

输入输出样例

输入样例1:

6 1999

输出样例1:

29

输入样例2:

123456789 1999

输出样例2:

460

输入样例3:

987654321 1000000007

输出样例3:

75019086