#include<iostream>
using namespace std;
const int N(100005);
int a[N];
int solve(int n)
{
	if (n==1||n==2&&a[0]==a[1]) return 1;
	if (n==2) return 2;
	int ans(1),k=1;
	while (a[k]==a[k-1]&&k<n) k++;	//去掉数列前面多余的相同数据 
	bool flag=(a[k]>a[k-1]);
	for (int i=k+1;i<n;i++)
	{
		if (a[i]==a[i-1]) continue;
		if ((a[i]>a[i-1])!=flag)
			ans++,flag=!flag;
	}			
	ans++;
	return ans;
}
int main()
{
	//ifstream cin("flower.in");
	//ofstream cout("flower.out");
	int n;
	cin>>n;
	for (int i=0;i<n;i++) cin>>a[i];
	int ans(0);
	cout<<solve(n)<<endl;
	return 0;
}
/**************************************************************
	Problem: 2328
	User: admin
	Language: C++
	Result: Accepted
	Time:86 ms
	Memory:2464 kb
****************************************************************/