#bzoj4589. Hard Nim

Hard Nim

题目描述

Claris\text{Claris}NanoApe\text{NanoApe}在玩石子游戏,他们有nn堆石子,规则如下:

  1. Claris\text{Claris}NanoApe\text{NanoApe}两个人轮流拿石子,Claris\text{Claris}先拿。
  2. 每次只能从一堆中取若干个,可将一堆全取走,但不可不取,拿到最后11颗石子的人获胜。

不同的初始局面,决定了最终的获胜者,有些局面下先拿的Claris\text{Claris}会赢,其余的局面Claris\text{Claris}会负。

Claris\text{Claris}很好奇,如果这nn堆石子满足每堆石子的初始数量是不超过m的质数,而且他们都会按照最优策略玩游戏,那么NanoApe\text{NanoApe}能获胜的局面有多少种。

由于答案可能很大,你只需要给出答案对109+710^9+7取模的值。

输入格式

输入文件包含多组数据,以EOF为结尾。

对于每组数据:

共一行两个正整数nnmm

输出格式

每组一个整数。

样例

3 7
4 13
EOF
6
120

数据规模与约定

每组数据有1n109,2m500001\le n\le 10^9, 2\le m\le 50000

不超过8080组数据。