#include <bits/stdc++.h>
using namespace std;
#define ll long long int
vector<ll>st;
ll sz;
void fenwick_update(ll idx, ll val) {
while(idx<=sz) {
st[idx]+=val;
idx+=(idx&-idx);
}
}
ll fenwick_query(ll idx) {
ll sum=0;
while(idx > 0) {
sum+=st[idx];
idx-=(idx&-idx);
}
return sum;
}
ll cnt(vector<ll> v) {
ll n = v.size();
vector<ll>p;
p=v;
sort(p.begin(),p.end());
vector<ll>cmp(n);
for (ll i=0;i<n;++i) {
cmp[i]=lower_bound(p.begin(),p.end(),v[i])-p.begin()+1;
}
sz=n;
st.assign(n+1,0);
vector<ll> r(n, 0), l(n, 0);
for (ll i=n-1;i>=0;--i) {
r[i] = fenwick_query(n)-fenwick_query(cmp[i]-1);
fenwick_update(cmp[i],1);
}
st.assign(n + 1, 0);
for (ll i = 0; i < n; ++i) {
l[i] = fenwick_query(cmp[i]);
fenwick_update(cmp[i],1);
}
ll ans = 0;
for (ll i=0;i<n;++i) {
if (r[i]>=v[i] || l[i]>=v[i]){
ans++;
}
}
return ans;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
ll n;
cin >> n;
vector<ll>v(n);
for (ll i=0;i<n;++i) {
cin>>v[i];
}
ll ans=cnt(v);
cout<<ans<<endl;
return 0;
}