#include <bits/stdc++.h>
#define pb push_back
#define f first
#define sc second
using namespace std;
typedef long long int ll;
typedef string str;
struct segtree{
    const ll inf = 1e18;
    int k;
    vector<ll> mx;
    segtree(int n){
        k = 1;
        while(k <= n) k*=2; k*=2;
        mx.assign(k, -inf);
    }
    void upd(int in, ll x){
        in+=k/2;
        mx[in] = x, in/=2;
        while(in > 0){
            mx[in] = max(mx[2*in], mx[2*in+1]);
            in/=2;
        }
    }
    ll smx(int l, int r, int nd, int a, int b){
        if(b < l || a > r) return -inf;
        if(a >= l && b <= r) return mx[nd];
        int c = (a+b)/2;
        return max(smx(l, r, 2*nd, a, c), smx(l, r, 2*nd+1, c+1, b));
    }
    ll smx(int l, int r){
        return smx(l, r, 1, 0, k/2-1);
    }
};
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int n; cin >> n;
    vector<int> v(n);
    for(int &x: v) cin >> x;
    vector<int> pref(n, 0), suff(n, 0);
    for(int i = 0; i < n; i++){
        if(i != 0 && v[i] > v[i-1]){
            pref[i] = pref[i-1]+1;
        }
        else pref[i] = 1;
    }
    for(int i = n-1; i >= 0; i--){
        if(i != n-1 && v[i] > v[i+1]){
            suff[i] = suff[i+1]+1;
        }
        else suff[i] = 1;
    }
    vector<int> pref1(n, 0), suff1(n, 0); 
    for(int i = 0; i < n; i++){
        if(i != 0 && v[i] < v[i-1]) pref1[i] = pref1[i-1]+1;
        else pref1[i] = 1;
    }
    for(int i = n-1; i >= 0; i--){
        if(i != n-1 && v[i] < v[i+1]) suff1[i] = suff1[i+1]+1;
        else suff1[i] = 1;
    }
    segtree seg(n);
    for(int i = 0; i < n; i++){
        seg.upd(i, max(suff1[i], pref1[i]));
    }
    int ans = 0;
    for(int i = 1; i < n-1; i++){
        if(v[i] < v[i+1] || v[i] < v[i-1]) continue;
        int a = i-pref[i], b = i+suff[i];
        int mx = max(pref[i], suff[i]);
        if(a >= 0 && seg.smx(0, a) >= mx || suff1[a] >= mx){
            continue;
        }
        if(b < n && seg.smx(b, n-1) >= mx || pref1[b] >= mx){
            continue;
        }
        a = pref[i], b = suff[i];
        if(a < b) swap(a, b);
        if(a == b && a%2 == 1){
            ans++;
            continue;
        }
    }
    /*
    a
    */
    cout << ans << "\n";
}