#include<iostream>
#include<algorithm>
using namespace std;
const int N=200020;
int n,hh=0,tt=-1;
long long w,dq[N];
int main()
{
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%lld",&dq[i]);
        tt++;
    }
    scanf("%lld",&w);
    dq[n]=w;
    tt++;
    long long time=0;
    bool can=true;//记录是否可以交换
    while(hh<=tt)
    {
        int idx=tt;
        while(hh<tt&&dq[idx]>=dq[tt]&&can)tt--;
        if(dq[idx]<dq[tt])swap(dq[idx],dq[tt]);//只有当前面存在比w小的数才交换
        else//不能交换,tt不变,can为false
        {
            tt=idx;
            can=!can;
        }
        if(can)
        {
            time++;
            hh++;
        }
        else//不能交换,就没有必要继续判断了
        {
            time+=tt-hh+1;
            break;
        }
    }
    cout<<time;
    return 0;
}