n=10**8
mod=10**9+7
s=t=0
a=[0]
for i in range(n-1):
s=(s*s+45)%mod
t+=s
a.append(s)
while len(a)>=3 and a[-2]>=a[-1] and a[-2]>=a[-3]:
d=a[-1]+a[-3]-a[-2]
a.pop()
a.pop()
a.pop()
a.append(d)
x,y,z,d=0,len(a)-1,1,0
while x<=y:
if a[x]>a[y]:
d+=a[x]*z
x+=1
else:
d+=a[y]*z
y-=1
z=-z
print((t+d)//2)