/****************************************************
file name: hdu4908.cpp
author: Kalis
creat time: Mon 03 Nov 2014 03:26:48 PM CST
***************************************************/
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <map>
#include <vector>
#include <queue>
using namespace std;
const int MAXN = 40000 + 10;
int num[MAXN];
int cont[MAXN * 2];
int main()
{
int n,m;
int k;
while(~scanf("%d%d",&n,&m))
{
memset(num,0,sizeof(num));
memset(cont,0,sizeof(cont));
for(int i = 0;i < n;i ++)
{
scanf("%d", &num[i]);
if(num[i] == m)
k = i;
}
int mid = MAXN;
cont[mid] ++;
for(int i = k - 1;i >= 0; i --)
{
if(num[i] < m)
mid --;
else
mid ++;
cont[mid] ++;
}
mid = MAXN;
int ans = cont[mid];
for(int i = k + 1; i < n; i ++)
{
if(num[i] > m)
mid --;
else
mid ++;
ans += cont[mid];
}
printf("%d\n",ans);
}
return 0;
}