problem

Given the sequence $ A $ of length $ N $. The $ i $ item in $ A $ is $ A_i $. You can do the following for this sequence:

* $ 1 \ leq i \ leq N --Choose the integer i that is 1 $. Swap the value of $ A_i $ with the value of $ A_ {i + 1} $.



Find the minimum number of operations required to make $ A $ a sequence of bumps.

A sequence of length $ N $ that satisfies the following conditions is defined as a sequence of irregularities.

* For any $ i $ that satisfies $ 1 <i <N $, ​​$ A_ {i + 1}, A_ {i --1}> A_i $ or $ A_ {i + 1}, A_ {i --1} <A_i Satisfy $.
Intuitively, increase, decrease, increase ... (decrease, like $ 1, \ 10, \ 2, \ 30, \ \ dots (10, \ 1, \ 30, \ 2, \ \ dots) $ It is a sequence that repeats increase, decrease ...).



output

Output the minimum number of operations required to make a sequence of bumps. Also, output a line break at the end.

Example

Input

5
1 2 3 4 5


Output

2
#include <bits/stdc++.h>
using namespace std;

constexpr int INF = 1<<30;

int main(){
    int n;
    cin >> n;
    vector<int> a, b(n);
    for(int i=0;i<n;i++){
        cin >> b[i];
    }
    int ans = INF;
    for(int t=0;t<2;t++){
        int cnt = 0;
        a = b;
        for(int i=0;i<n-2;i++){
            if((i+t)%2){
                if(a[i]<a[i+1]){
                    cnt++;
                    if(a[i]<a[i+2]) swap(a[i],a[i+1]);
                    else swap(a[i+1],a[i+2]);
                }
            }
            else{
                if(a[i]>a[i+1]){
                    cnt++;
                    if(a[i]>a[i+2]) swap(a[i],a[i+1]);
                    else swap(a[i+1],a[i+2]);
                }
            }
        }
        if((n-2+t)%2){
            if(a[n-2]<a[n-1]) cnt++;
        }else{
            if(a[n-2]>a[n-1]) cnt++;
        }
        ans = min(ans, cnt);
    }
    cout << ans << endl;
    return 0;
}

