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;
typedef long long ll;
int N, K;
vector<ll> A, B;
map<ll, int> C;

const int M = 200010;
int bit[M+1];
ll count_le(ll n) {
	ll r = 0;
	for (int x = C[n]; x > 0; x -= x & -x) r += bit[x];
	return r;
}
void add(ll n) {
	for (int x = C[n]; x <= M; x += x & -x) bit[x] += 1;
}
int main() {
	cin >> N >> K;
	A.resize(N);
	for (auto& x : A) cin >> x;
	B.resize(N+1);
	for (int i = 0; i < N; ++ i) {
		B[i+1] = B[i] + A[i] - K;
	}

	set<ll> b;
	for (auto x : B) b.insert(x);
	int idx = 1;
	for (auto x : b) C[x] = idx++;

	ll r = 0;
	for (int i = 0; i <= N; ++ i) {
		r += count_le(B[i]);
		add(B[i]);
	}
	cout << r << endl;
}
