//#include<stdio.h>
//int stack[20000]={},t=0,y=0,top=0,i=0, x=0,h;
//char s[2100]={};
//
//int pop()
//{
// top--;
// int v = stack[top];
// stack[top] = 0;
// return v;
//}
//void push(k)
//{
// stack[top++]=k;
//}
//
//void n(int k)
//{
// stack[top]=k;
// top++;
//}
//int main()
//{
// int j,sum=0;
// gets(s);
// for(i=0; i < strlen(s);i++)
// {
// if(s[i]=='+')
// {
// t=pop();
// y=pop();
// push(y+t);
// x = 1;
// }
// else if(s[i]=='-')
// {
// t=pop();
// y=pop();
// push(y-t);
// x = 1;
// }
// else if(s[i]=='*')
// {
// t=pop();
// y=pop();
// push(y*t);
// x = 1;
//
// }
// else if(s[i] >= '0' && s[i] <= '9')
// {
// stack[top] = stack[top] * 10 + (s[i] - '0');
// x = 0;
// }
// else if(s[i] == ' '&&x==0) {
// top++;
// }
// h=top-1;
// for(;h>=0;h--)
// {
// printf("%d ",stack[h]);
// }
// printf("\n");
//}
//
// printf("%d",stack[0]);
//}
#include<stdio.h>
int stack[80001]={},top=0,c=0,a,i,k=0;
void find(int i)
{
i++;
if(i==a)
{
return 0;
}
if(k<=stack[i])
{
return 0;
}
c++;
find(i);
}
int main()
{
scanf("%d",&a);
for(i=0;i<a;i++)
{
scanf("%d",&stack[i]);
top++;
}
for(i=0;i<a;i++)
{
k=i;
find(i);
}
printf("%d",c);
}