/* I will wait for you*/ #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <ctime> #include <algorithm> #include <iostream> #include <fstream> #include <vector> #include <queue> #include <deque> #include <map> #include <set> #include <string> #include <ext/hash_map> #define make make_pair #define fi first #define se second using namespace std; using namespace __gnu_cxx; typedef long long ll; typedef unsigned long long ull; typedef pair<int,int> pii; const int maxn = 200010; const int maxm = 1010; const int maxs = 26; const int inf = 0x3f3f3f3f; const int P = 1000000007; const double error = 1e-9; inline int read() { int x = 0, f = 1; char ch = getchar(); while (ch <= 47 || ch >= 58) f = (ch == 45 ? -1 : 1), ch = getchar(); while (ch >= 48 && ch <= 57) x = x * 10 + ch - 48, ch = getchar(); return x * f; } int n, b, mid = 100005, num[maxn], pre[2][maxn]; ll ans; int main() { n = read(), b = read(), pre[1][mid] = 1; for (int i = 1; i <= n; i++) { num[i] = read(); if (num[i] == b) num[i] = 0; else if (num[i] < b) num[i] = -1; else if (num[i] > b) num[i] = 1; num[i] += num[i - 1]; ans += (ll) pre[i & 1][mid + num[i]]; pre[(i & 1) ^ 1][mid + num[i]]++; } printf("%lld\n", ans); return 0; }