#include<iostream>
#include<queue>
using namespace std;
const int N=2e5+6;
int arr[N];
int n;
bool vis[N]; // 下标是否被访问过
queue<int> que; // 存下标
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr), cout.tie(nullptr);
cin>>n;
for(int i=0;i<n;i++){
cin>>arr[i];
}
que.push(0);
vis[0]=true;
bool sign=false;
int ma_ind=0;
while(!que.empty()){
int ind=que.front();
que.pop();
// cout<<ind<<" "<<arr[ind]<<endl;
if(ind==n-1){
sign=true;
break;
}
int nex;
for(int i=ma_ind+1;i<=ind+arr[ind];i++){
if(i>n) break;
if(!vis[i]){
que.push(i);
vis[i]=true;
nex=i;
}
}
ma_ind=nex;
}
if(sign) cout<<"true";
else cout<<"false";
return 0;
}