PROGRAMMING:The magic WLS
WLS has been very busy recently, so he wandered about everywhere and entered a mysterious world.
There are many stones in this world, and each stone has a mysterious power - it can become more.
Each stone can be divided into three stones, but after splitting, it can't be split again.
Note: you have to place the stones before you choose some stones to split - which means that the three stones that each stone splits are next to each other.
WLS wants to know how many plans he has, and how many stones can be divided into n.
Hint: stone can split or not.
For example, use 0 for the split stone and 1 for the undivided stone
Then: when n is 4, there are three kinds of 0001 1000 1111; when n is 5, there are four kinds of 0001 1000 1100 0 11111
###Input format:
An n (0 < n < = 1e15)
###Output format:
Output the answer. The answer is modelled on 1e9 + 7
###Input example:
```in
one
```
```in
four
```
###Output example:
```out
one
```
```out
three
```
answer:If there is no answer, please comment
There are many stones in this world, and each stone has a mysterious power - it can become more.
Each stone can be divided into three stones, but after splitting, it can't be split again.
Note: you have to place the stones before you choose some stones to split - which means that the three stones that each stone splits are next to each other.
WLS wants to know how many plans he has, and how many stones can be divided into n.
Hint: stone can split or not.
For example, use 0 for the split stone and 1 for the undivided stone
Then: when n is 4, there are three kinds of 0001 1000 1111; when n is 5, there are four kinds of 0001 1000 1100 0 11111
###Input format:
An n (0 < n < = 1e15)
###Output format:
Output the answer. The answer is modelled on 1e9 + 7
###Input example:
```in
one
```
```in
four
```
###Output example:
```out
one
```
```out
three
```
answer:If there is no answer, please comment