Codeforces celebrates 10 years! We are pleased to announce the crowdfunding-campaign. Congratulate us by the link https://codeforces.com/10years. ×

C. Ayoub and Lost Array
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Ayoub had an array $$$a$$$ of integers of size $$$n$$$ and this array had two interesting properties:

  • All the integers in the array were between $$$l$$$ and $$$r$$$ (inclusive).
  • The sum of all the elements was divisible by $$$3$$$.

Unfortunately, Ayoub has lost his array, but he remembers the size of the array $$$n$$$ and the numbers $$$l$$$ and $$$r$$$, so he asked you to find the number of ways to restore the array.

Since the answer could be very large, print it modulo $$$10^9 + 7$$$ (i.e. the remainder when dividing by $$$10^9 + 7$$$). In case there are no satisfying arrays (Ayoub has a wrong memory), print $$$0$$$.

Input

The first and only line contains three integers $$$n$$$, $$$l$$$ and $$$r$$$ ($$$1 \le n \le 2 \cdot 10^5 , 1 \le l \le r \le 10^9$$$) — the size of the lost array and the range of numbers in the array.

Output

Print the remainder when dividing by $$$10^9 + 7$$$ the number of ways to restore the array.

Examples
Input
2 1 3
Output
3
Input
3 2 2
Output
1
Input
9 9 99
Output
711426616
Note

In the first example, the possible arrays are : $$$[1,2], [2,1], [3, 3]$$$.

In the second example, the only possible array is $$$[2, 2, 2]$$$.