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 = 200005;

int n, k;
long long a[N];
vector<long long> z;
long long ans;

// BIT
int T[N];
void upd(int x) { for (; x < N; x += x & -x) T[x]++; }
int get(int x) { int res = 0; for (; x > 0; x -= x & -x) res += T[x]; return res; }

int main() {
	ios_base::sync_with_stdio(false); cin.tie(0);
	cin >> n >> k;
	for (int i = 1; i <= n; ++i) {
		cin >> a[i], a[i] -= k;
		a[i] += a[i-1]; // a[] indicates prefix sums now
		z.push_back(a[i]);
	}
	z.push_back(0);
	sort(z.begin(), z.end());
	z.resize(distance(z.begin(), unique(z.begin(), z.end())));

	// solve
	upd(lower_bound(z.begin(), z.end(), 0) - z.begin() + 1);
	for (int i = 1; i <= n; ++i) {
		int pos = lower_bound(z.begin(), z.end(), a[i]) - z.begin() + 1;
		int cur = get(pos);
		ans += cur;
		upd(pos);
	}

	cout << ans << endl;
}