陪你去流浪,踏遍那四海八荒
题号:NC200625
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

巫山老伯一直想去远方流浪,踏遍四海八荒,攀登五岳珠峰!问世间情为何物,只教天若有情天亦老,人间正道是沧桑!
今日,巫山老伯再启程,去那北海极地,寻同道中人,看绝世美景。叹息,憾息。
巫山老伯,有一神秘法宝,助他踏遍四海,早寻同道中人,安看万世流景。此神秘法宝,极大的减轻了旅途中的负担。此神秘法宝,体积极小,外形堪似那古埃及的奇迹之做——金字塔。第一层可放容量为1的物件,第2层,可放容量不超过2的阶层的物件,第3层,可放容量不超过3的阶层的物件,第n层,可放容量不超过n的阶层的物件。以此类推 于是而已。
还有二件神秘宝物,可助他收藏旅途所收获之点点滴滴。
一为,万生药水;二为,万物归一。
万生药水,可以成倍复制那外形看似那金字塔的神秘法宝(例如:有n个神秘法宝,则可复制出2*n个神秘法宝)。
万物归一,可把多个神秘法宝归为一个神秘法宝,且体积会相应扩大,除第一层外其他所有层的容量都会变成相应层容量的和。
解释:如果有3个3层的神秘法宝,那么用了一个万物归一之后,变成的新的神秘法宝的容积将为(1+2!+2!+2!+3!+3!+3!)。
同时,万生药水和万物归一,巫山老伯是可以随便用的,但是要保证在最后一定要合成一个神秘法宝,同时要使容积是最大的(求模之前最大),不能同时带着多个神秘法宝行走于江湖。
例如:
巫山老伯此次出行带有,一个有3层的神秘法宝,2瓶万生药水,2瓶万物归一。那么此次出行巫山老伯最多能装(1+2! + 2! + 2! + 2! + 3! + 3! + 3! +3!)的容量物品。
解释:3层神秘法宝 可装容量为(1+2!+3!),用一瓶万生药水可装容量变成(1+2!+3!)+(1+2!+3!),在用一瓶万物归一则可装容量变为
(1+2!+2!+3!+3!);在用一瓶万生药水,可装容量变为(1+2!+2!+3!+3!)+(1+2!+2!+3!+3!),在用一瓶万物归一药水,可装容量变为
(1+2!+2! + 2!+2!+3!+3!+3!+3!)。
同时,巫山老伯为了保证神秘法宝过大,他会将每一层的容积对mod=3777105087进行取余(只要当前容积一大于mod,就进行取余)。然后重新得到每一层的容积。

输入描述:

多组输入
第一行输入n 表示初始神秘法宝是多少层的 (1<= n<=1e15)
第二行 输入 x 和 y 分别表示x瓶万生药水,y瓶万物归一 (0<= x ,y <= 10)

输出描述:

每行输出通过万生药水和万物归一的变换之后,最后的神秘法宝的容积。同时容积对mod取余。
示例1

输入

复制
2
1 1
3
2 1

输出

复制
5
33

备注:

多组输入