题目描述
奶牛们厌倦了农场生活,于是卖掉了所有家产,加入了马戏团的巡回演出。到目前为止,奶牛们得到的表演任务都很简单:抛火把、走钢丝、骑独轮车——这些对于有蹄子的奶牛来说都不在话下。然而,马戏团的团长想要为下一场表演设计一个更加戏剧性的节目。
新节目的舞台布局包括 个平台,这些平台呈圆形排列。每个平台上,奶牛们需要堆叠成一个“牛堆”,每个“牛堆”中奶牛的数量在 1 到 N 之间。当团长发出信号时,所有的“牛堆”会同时顺时针倒下,最底层的奶牛不会移动,它上面的奶牛会顺时针移动一个平台,再上面的奶牛会顺时针移动两个平台,以此类推。奶牛们都是出色的体操运动员,因此它们知道在技术方面不会有问题。各个“牛堆”在倒下的过程中不会相互“干扰”,因此每头奶牛都会落在预定的平台上。落在同一个平台上的所有奶牛会形成一个新的“牛堆”,这个新的“牛堆”不会倒下。
团长认为,如果在“牛堆”倒下后,每个平台上的新“牛堆”中的奶牛数量与该平台上的原始“牛堆”中的奶牛数量相同,那么这个节目将特别戏剧性。如果一个“牛堆”配置满足这个条件,我们称这个配置为“神奇的”。请帮助奶牛们计算“神奇的”配置的数量。由于这个数字可能非常大,因此需要计算它对 的余数。
如果在任何平台上,两个配置分配的奶牛数量不同,则认为这两个配置是不同的。
输入格式
输入是一个整数 N(1<N< 10^12)。
输出格式
输出是一个整数,表示“神奇的”配置的数量对 MOD 1^9+7 的余数。