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
/*input
*/
#include <bits/stdc++.h>
using namespace std;

const int N = 200005;
int n, k, bit[N];
int64_t a[N], Ans;

void update(int index, int val) {
	while(index <= n + 1) bit[index] += val, index += index & (-index);
}

int64_t get(int index) {
	int64_t res = 0;
	while(index != 0) res += bit[index], index -= index & (-index);
	return res;
}

int main(){
	iostream::sync_with_stdio(false);
	cin >> n >> k;

	map<int64_t, int> mappu;
	mappu[0] = 1;
	for(int i = 1; i <= n; ++ i) {
		cin >> a[i], a[i] -= k;
		a[i] += a[i - 1], mappu[a[i]] = 1;
	}

	int cnt = 0;
	for(auto it = mappu.begin(); it != mappu.end(); ++ it)
		it->second = ++ cnt;
	for(int i = 0; i <= n; ++ i) a[i] = mappu[a[i]];

	update(a[0], 1);
	for(int i = 1; i <= n; ++ i) {
		int x = get(a[i]);
		Ans += x, update(a[i], 1);
	}
	cout << Ans << endl;
}