#include <cstdio>
#include <cstring>
#include <algorithm>
#include <set>
#include <map>
#include <vector>
#include <iostream>
using namespace std;
void my_ans(){
long long i,j,n,m,q,aj,t,k,x=-1,y=-1,w,mi,ma,mid, ans = 0;
cin>>n;
long long b[n+1];
b[0] = 0;
set<pair<long long,long long>> st;
set<long long> s1;
vector<long long> vc;
pair<long long,long long> p;
for(i=1;i<=n;++i){
cin>>t;
if (t==1){
b[i] = b[i-1] +1; vc.push_back(i);
p.first = t; p.second = -i;st.insert(p);
}else{
p.first = t-2;p.second = 0;
auto it = st.upper_bound(p);
if (it == st.end()){
st.clear();b[i] = 0;vc.clear();
}else{
p=*it;
if (p.first == t-1){
x = -p.second; m= vc.size()-1;
while(m>=0 && vc[m] > x){
vc.pop_back();--m;
}
if (vc[m] < x ) x = vc[m];
b[i] = b[x-1] +1;
st.erase(p);p.first = t;st.insert(p);
}else{
st.clear();b[i] = 0;vc.clear();
}
}
}
ans = ans + b[i];
}
cout<<ans<<endl;
return;
}
int main() {
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
long long t=1,i,j;
//scanf("%d",&t);
//cin>>t;
while(t>0){
--t;my_ans();
}
return 0;
}
// 64 位输出请用 printf("%lld")