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>
using namespace std;

const int N = (int) 2e5;
long long s[N + 1];
int a[N];
vector<int> bit;

int get(int x) {
	int res = 0;
	while (x >= 0) {
		res += bit[x];
		x -= ~x & (x + 1);
	}
	return res;
}

void update(int x, int delta) {
	while (x < (int) bit.size()) {
		bit[x] += delta;
		x |= x + 1;
	}
}

int main() {
	int n, k; cin >> n >> k;
	for (int i = 0; i < n; ++i) {
		cin >> a[i];
		a[i] -= k;
		s[i + 1] = s[i] + a[i];
	}
	vector<long long> v (s, s + n + 1);
	sort(v.begin(), v.end());
	v.erase(unique(v.begin(), v.end()), v.end());
	bit.assign(v.size(), 0);
	long long res = 0;
	for (int i = 0; i <= n; ++i) {
		int p = lower_bound(v.begin(), v.end(), s[i]) - v.begin();
		res += get(p);
		update(p, 1);
	}
	cout << res << '\n';
	return 0;
}
