fun readInt () = valOf (TextIO.scanStream (Int.scan StringCvt.DEC) TextIO.stdIn) fun findAns [] = 0 | findAns [_] = 0 | findAns [_, _] = 0 | findAns (a1 :: a2 :: a3 :: tl) = if (a1 <> a2 andalso a1 <> a3 andalso a2 <> a3) andalso ((Int.min(a2, a3) < a1 andalso a1 < Int.max(a2, a3)) orelse (Int.min(a1, a2) < a3 andalso a3 < Int.max(a1, a2))) then 1 + findAns (a2 :: a3 :: tl) else findAns (a2 :: a3 :: tl) val () = let val n = readInt () val a_s = List.tabulate (n, fn _ => readInt ()) val ans = findAns a_s in print (Int.toString ans ^ "\n") end