You are given an integer sequence of length N, a = {a_1, a_2, …, a_N}, and an integer K.

a has N(N+1)/2 non-empty contiguous subsequences, {a_l, a_{l+1}, …, a_r} (1 ≤ l ≤ r ≤ N). Among them, how many have an arithmetic mean that is greater than or equal to K?

Constraints

* All input values are integers.
* 1 ≤ N ≤ 2 \times 10^5
* 1 ≤ K ≤ 10^9
* 1 ≤ a_i ≤ 10^9

Input

Input is given from Standard Input in the following format:


N K
a_1
a_2
:
a_N


Output

Print the number of the non-empty contiguous subsequences with an arithmetic mean that is greater than or equal to K.

Examples

Input

3 6
7
5
7


Output

5


Input

1 2
1


Output

0


Input

7 26
10
20
30
40
30
20
10


Output

13
#include <bits/stdc++.h>

const int MAXN = 200010;
typedef long long LL;
LL A[MAXN], li[MAXN];
int n, K;
int main() {
	std::ios_base::sync_with_stdio(false), std::cin.tie(0);
	std::cin >> n >> K;
	LL ans = 0;
	for (int i = 1; i <= n; ++i)
		std::cin >> A[i], A[i] -= K, A[i] += A[i - 1], ans += A[i] >= 0;
	memcpy(li, A, n + 1 << 3);
	std::sort(li + 1, li + 1 + n);
	for (int i = 0; i <= n; ++i)
		A[i] = std::lower_bound(li + 1, li + 1 + n, A[i]) - li;
	memset(li, 0, sizeof li);
	for (int i = 1; i <= n; ++i) {
		for (int x = A[i]; x; x &= x - 1) ans += li[x];
		for (int x = A[i]; x <= n; x += x & -x) ++li[x];
	}
	std::cout << ans << std::endl;
	return 0;
}
