#include<bits/stdc++.h>
using namespace std;
int n;
const int maxn=5e5+10;
int h[maxn];
int s[maxn];
int tail;
long long ans;
int find1(int x)
{
int l=0,r=tail,res;
while(l<=r)
{
int mid=(l+r)>>1;
if(h[s[mid]]>x)
{
res=mid;
l=mid+1;
}
else
r=mid-1;
}
return res;
}
int find2(int x)
{
int l=0,r=tail,res;
while(l<=r)
{
int mid=(l+r)>>1;
if(h[s[mid]]>=x)
{
res=mid;
l=mid+1;
}
else
r=mid-1;
}
return res;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int x;
scanf("%d",&x);
h[i]=x;
}
for(int i=1;i<=n;i++)
{
if(tail>0&&h[i]>=h[s[tail]])
{
int y=find1(h[i]);
int z=find2(h[i]);
if(y==0)
{
ans+=tail;
}
else
{
ans+=tail-y+1;
}
tail=z;
}
else if(h[i]<h[s[tail]])
{
ans++;
}
s[++tail]=i;
}
cout<<ans;
return 0;
}