const rl = require("readline").createInterface({ input: process.stdin });
	
	
		var iter = rl[Symbol.asyncIterator]();
	
	
		const readline = async () => (await iter.next()).value;
	
		void async function () {
	
	
		   const n = parseInt(await readline());
	
	
		let arr = await readline();
	
	
		arr = arr.split(" ");
	
	
		const mod = 1000000007
	
	
		console.log(getNumAll(1*n+1,arr)%mod);
	
	
		function getNumAll(n,arr){
	
	
		    if(n == 1){
	
	
		        return 0
	
	
		    }else if(n == 2){
	
	
		        return 2;
	
	
		    }else{
	
	
		        let result = 2*getNumAll(n-1,arr) + 2 - getNumAll(parseInt(arr[n-2]),arr);
	
	
		        result = result > 0 ? result % mod : result + mod;
	
	
		        return result ;
	
	
		    }
	
	
		}
	
	
		}()
	

 京公网安备 11010502036488号
京公网安备 11010502036488号