import numpy



N = int(eval(input()))

AN = list(map(int,input().split()))



ans = 1				#配列数。切らない場合1なので初期値1

beforeDiff = 0				#一つ前の差分値。初期値は任意

chgFlag = True				#区切りフラグ。初期値は0番目に区切った扱いにするのでTrue



for i in range(1,N):			#i-1を参照するため1スタート

	diff = AN[i] - AN[i-1]

	

	if chgFlag or beforeDiff==0:	#符号を維持(区切り直後、前回の差が0)

		beforeDiff = diff	#区切り直後の差分値を入れる(重要なのは符号)

		chgFlag = False	#区切らない

		continue

		

	if (numpy.sign(beforeDiff) == 1 and numpy.sign(diff) == -1) or (numpy.sign(beforeDiff) == -1 and numpy.sign(diff) == 1):		#以前と符号が逆なら区切る

		chgFlag = True		#区切る

		ans += 1

		

print(ans)
N = int(eval(input()))

A = list(map(int,input().split()))

 

ans = 1

sumDiff = 0	#この値の符号によって単純非減少、単純非増加を判定

		#初期や区切った直後は0でそこからdiffを積み上げる。符号が異なる場合を前で除いているので

		#絶対値的に大きくだけで符号は変わらない。0のときも問題なく適用できる

for i in range(1,len(A)):

	

	diff = A[i]-A[i-1]

	if sumDiff*diff < 0:		#sumDiff,diff=(正,負),(負,正)のときだけ成立 どちらかが0の場合非成立

		ans += 1

		sumDiff = 0		#sumDiffをリセット(区切った直後にまた区切ることはないので、

					#0だとこの分岐に引っかからないようにした)

	else:

		sumDiff += diff		#代入だと0のとき符号が維持できない。加算することで符号が維持できる

 

print(ans)
import numpy

N = int(eval(input()))
AN = list(map(int, input().split()))
ans = 1  # 配列数。切らない場合1なので初期値1
beforeDiff = 0  # 一つ前の差分値。初期値は任意
chgFlag = True  # 区切りフラグ。初期値は0番目に区切った扱いにするのでTrue
for i in range(1, N):  # i-1を参照するため1スタート
    diff = AN[i] - AN[i - 1]
    if chgFlag or beforeDiff == 0:  # 符号を維持(区切り直後、前回の差が0)
        beforeDiff = diff  # 区切り直後の差分値を入れる(重要なのは符号)
        chgFlag = False  # 区切らない
        continue
    if (numpy.sign(beforeDiff) == 1 and numpy.sign(diff) == -1) or (
        numpy.sign(beforeDiff) == -1 and numpy.sign(diff) == 1
    ):  # 以前と符号が逆なら区切る
        chgFlag = True  # 区切る
        ans += 1
print(ans)

N = int(eval(input()))
A = list(map(int, input().split()))
ans = 1
sumDiff = 0  # この値の符号によって単純非減少、単純非増加を判定
# 初期や区切った直後は0でそこからdiffを積み上げる。符号が異なる場合を前で除いているので
# 絶対値的に大きくだけで符号は変わらない。0のときも問題なく適用できる
for i in range(1, len(A)):
    diff = A[i] - A[i - 1]
    if sumDiff * diff < 0:  # sumDiff,diff=(正,負),(負,正)のときだけ成立 どちらかが0の場合非成立
        ans += 1
        sumDiff = 0  # sumDiffをリセット(区切った直後にまた区切ることはないので、
        # 0だとこの分岐に引っかからないようにした)
    else:
        sumDiff += diff  # 代入だと0のとき符号が維持できない。加算することで符号が維持できる
print(ans)

-import numpy - -AN = list(map(int, input().split())) -ans = 1  # 配列数。切らない場合1なので初期値1 -beforeDiff = 0  # 一つ前の差分値。初期値は任意 -chgFlag = True  # 区切りフラグ。初期値は0番目に区切った扱いにするのでTrue -for i in range(1, N):  # i-1を参照するため1スタート -    diff = AN[i] - AN[i - 1] -    if chgFlag or beforeDiff == 0:  # 符号を維持(区切り直後、前回の差が0) -        beforeDiff = diff  # 区切り直後の差分値を入れる(重要なのは符号) -        chgFlag = False  # 区切らない -        continue -    if (numpy.sign(beforeDiff) == 1 and numpy.sign(diff) == -1) or ( -        numpy.sign(beforeDiff) == -1 and numpy.sign(diff) == 1 -    ):  # 以前と符号が逆なら区切る -        chgFlag = True  # 区切る +A = list(map(int, input().split())) +ans = 1 +sumDiff = 0  # この値の符号によって単純非減少、単純非増加を判定 +# 初期や区切った直後は0でそこからdiffを積み上げる。符号が異なる場合を前で除いているので +# 絶対値的に大きくだけで符号は変わらない。0のときも問題なく適用できる +for i in range(1, len(A)): +    diff = A[i] - A[i - 1] +    if sumDiff * diff < 0:  # sumDiff,diff=(正,負),(負,正)のときだけ成立 どちらかが0の場合非成立 +        sumDiff = 0  # sumDiffをリセット(区切った直後にまた区切ることはないので、 +        # 0だとこの分岐に引っかからないようにした) +    else: +        sumDiff += diff  # 代入だと0のとき符号が維持できない。加算することで符号が維持できる