Large Fibonacci Number Modulo

Given n up to 10^18, print the nth Fibonacci number modulo 1,000,000,007.

Medium4MatrixDivide and conquerMathInterviewNo attempts yetTime limit1sMemory limit256 MB

Problem

The Fibonacci numbers start with 0 and 1. The 0th Fibonacci number is 0 and the 1st Fibonacci number is 1. From the 2nd one on, each Fibonacci number is the sum of the two that come right before it.

As a formula, Fn=Fn1+Fn2F_n = F_{n-1} + F_{n-2} (n2n \ge 2).

Listing the Fibonacci numbers up to n=17n = 17 gives:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597

Given nn, write a program that computes the nnth Fibonacci number.

Input

The first line contains nn. nn is a natural number less than or equal to 1,000,000,000,000,000,000.

Output

Print the remainder of the nnth Fibonacci number divided by 1,000,000,007 on the first line.