Find the number of good strings of length n consisting of lower case characters

The problem is: A string s is good if it is possible to rearrange the characters of s such that the new string formed contains “prep” as substring. So the string “proper” is good but “poor” is not. Given an integer n, find the number of only lowercase English characters. As this number might be too large, return it modulo (10^9 +7)

Example:
let n=4 (input)
output:12
Explanation:
A string of 4 characters must have letters p,r,e and p. There are 12 distinct strings where this is the case and 12 modulo(10^9+7)=12
ppre
prep
repp
eppr
perp
erpp
rppe
pper
rpep
pepr
eprp
prpe

Example 2:
let n(input)=5
output: 1460
Explanation
One good string of length 5 is “preep” and there are a total of 1460 of them.
Example 3:
let n(input) = 10
output : 526083947580 modulo (10^9+7) = 83943898

Task:
Complete the function sol(int n) which has parameter n as an integer which returns number of good strings modulo(10^9+7)