#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
const int inf=0x3f3f3f3f;
int n;
int h[300010],u[300010],d[300010],a[300010];
int main(){
scanf("%d",&n);
memset(a,inf,sizeof(a));
for(int i=1;i<=n;i++)
{
scanf("%d",&h[i]);
}
int tu=1,td=1;
u[1]=1,d[1]=1;
a[1]=0;
for(int i=2;i<=n;i++)
{
while(tu>0&&h[i]<h[u[tu]])
{
a[i]=min(a[i],a[u[tu]]+1);
tu--;
}
a[i]=min(a[i],a[u[tu]]+1);
while(td>0&&h[i]>h[d[td]])
{
a[i]=min(a[i],a[d[td]]+1);
td--;
}
a[i]=min(a[i],a[d[td]]+1);
if(h[u[tu]]==h[i])tu--;
if(h[d[td]]==h[i])td--;
d[++td]=i;
u[++tu]=i;
}
printf("%d\n",a[n]);
return 0;
}