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>
#define ll long long
#define maxn 200005
using namespace std;
ll arr[maxn];
int SZ,bit[maxn];
inline int lowbit(int x) {
	return x&-x;
}
void add(int pos) {
	while(pos <= SZ) {
		bit[pos]++;
		pos += lowbit(pos);
	}
}
int sum(int pos) {
	int ret = 0;
	while(pos > 0) {
		ret += bit[pos];
		pos -= lowbit(pos);
	}
	return ret;
}
int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	int n,k;
	cin >> n >> k;
	vector<ll> dct = {0};
	for(int i=1,val;i<=n;i++) {
		cin >> val;
		arr[i] = arr[i-1] + val - k;
		dct.push_back(arr[i]);
	}
	sort(dct.begin(),dct.end());
	dct.resize(unique(dct.begin(),dct.end())-dct.begin());
	SZ = (int)dct.size();
	ll ans = 0;
	for(int i=0;i<=n;i++) {
		int idx = lower_bound(dct.begin(),dct.end(),arr[i])-dct.begin() + 1;
		ans += sum(idx);
		add(idx);
	}
	cout << ans << endl;
	return 0;
}
