One day, little Vasya found himself in a maze consisting of (*n* + 1) rooms, numbered from 1 to (*n* + 1). Initially, Vasya is at the first room and to get out of the maze, he needs to get to the (*n* + 1)-th one.

The maze is organized as follows. Each room of the maze has two one-way portals. Let's consider room number *i* (1 ≤ *i* ≤ *n*), someone can use the first portal to move from it to room number (*i* + 1), also someone can use the second portal to move from it to room number *p*<sub class="lower-index">*i*</sub>, where 1 ≤ *p*<sub class="lower-index">*i*</sub> ≤ *i*.

In order not to get lost, Vasya decided to act as follows. 
 -  Each time Vasya enters some room, he paints a cross on its ceiling. Initially, Vasya paints a cross at the ceiling of room 1. -  Let's assume that Vasya is in room *i* and has already painted a cross on its ceiling. Then, if the ceiling now contains an odd number of crosses, Vasya uses the second portal (it leads to room *p*<sub class="lower-index">*i*</sub>), otherwise Vasya uses the first portal. 
Help Vasya determine the number of times he needs to use portals to get to room (*n* + 1) in the end.
The first line contains integer *n* (1 ≤ *n* ≤ 10<sup class="upper-index">3</sup>) — the number of rooms. The second line contains *n* integers *p*<sub class="lower-index">*i*</sub> (1 ≤ *p*<sub class="lower-index">*i*</sub> ≤ *i*). Each *p*<sub class="lower-index">*i*</sub> denotes the number of the room, that someone can reach, if he will use the second portal in the *i*-th room.
 ######      ###      #######    #######    ##      #     #####        ###     ##### 
 #     #    #   #          #        #       # #     #    #     #      #   #     ###  
 #     #   #     #        #         #       #  #    #   #       #    #     #    ###  
 ######   #########      #          #       #   #   #   #           #########    #   
 ######   #########     #           #       #    #  #   #           #########    #   
 #     #  #       #    #            #       #     # #   #    ####   #       #    #   
 #     #  #       #   #             #       #      ##   #    #  #   #       #        
 ######   #       #  #######     #######    #       #    #####  #   #       #    #   
 
from __future__ import print_function # for PyPy2
# from itertools import permutations
# from functools import cmp_to_key  # for adding custom comparator
# from fractions import Fraction
from collections import *
from sys import stdin
# from bisect import *
from heapq import *
from math import *
 
g   = lambda : stdin.readline().strip()
gl  = lambda : g().split()
gil = lambda : [int(var) for var in gl()]
gfl = lambda : [float(var) for var in gl()]
gcl = lambda : list(g())
gbs = lambda : [int(var) for var in g()]
rr = lambda x : reversed(range(x)) 
mod = int(1e9)+7
inf = float("inf")

n, = gil()
prev = [0] + gil()
dp = [0]*(n+1)
dp[1] = 2
ans = 2

for i in range(2, n+1):
    dp[i] = 2
    for j in range(prev[i], i):
        dp[i] += dp[j]
        if dp[i] >= mod:dp[i]%mod
    ans += dp[i]
    if ans >= mod:ans %= mod

print(ans)