#include using namespace std; #define ll long long #define mod 1000000007 #define fo(i,n) for(i=0;in;k pii; typedef pair pil; typedef pair pl; typedef vector vi; typedef vector vl; typedef vector vpii; typedef vector vpl; typedef vector vvi; int solve(vector arr) { // Return the sum of S(S(A)) modulo 10^9+7. int n = arr.size(); vector next_greater(n,0); stack s; int element, next; s.push(0); for (int i=1; i r; for(int i=0; i=r[(k-1)*n+i]) { r.pb(arr[i+k]); } else { r.pb(r[(k-1)*n+i]); } } } vector r1; ll sum = 0; for(int i=0; i=r1[i]) { r1[i] = r[i+k]; } sum += r1[i]; sum %=mod; } } return sum; } int main() { int n; cin >> n; vector A(n); for(int A_i = 0; A_i < n; A_i++){ cin >> A[A_i]; } int result = solve(A); cout << result << endl; return 0; }