#include <bits/stdc++.h>
int n;
int *p;
int *opt;
int main() {
  int i;
  scanf("%d", &n);
  p = (int *)malloc((n + 2) * sizeof(int));
  opt = (int *)malloc((n + 2) * sizeof(int));
  for (i = 1; i <= n; i++) {
    scanf("%d", &p[i]);
  }
  opt[1] = 0;
  opt[2] = 2;
  for (i = 3; i <= n + 1; i++) {
    opt[i] = (2 * opt[i - 1] - opt[p[i - 1]] + 2) % 1000000007;
    if (opt[i] < 0) opt[i] += 1000000007;
  }
  printf("%d\n", opt[n + 1]);
}
