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 rep(i,n)for(int i=0;i<(n);i++)
using namespace std;
typedef long long ll;

ll a[200000],bit[500000];
void add(int k,int x){
	while(k<500000){
		bit[k]+=x;
		k+=k&-k;
	}
}
ll sum(int k){
	ll res=0;
	while(k){
		res+=bit[k];
		k-=k&-k;
	}
	return res;
}
ll b[200001];
int main() {
	ll n,k;scanf("%lld%lld",&n,&k);
	vector<ll>v{LLONG_MIN,0};
	rep(i,n){
		scanf("%lld",&a[i]);
		b[i+1]=b[i]+a[i]-k;
		v.push_back(b[i+1]);
	}
	sort(v.begin(),v.end());
	v.erase(unique(v.begin(),v.end()),v.end());
	ll ans=0;
	add((int)(lower_bound(v.begin(),v.end(),b[n])-v.begin()),1);
	for(int i=n-1;i>=0;i--){
		int c=lower_bound(v.begin(),v.end(),b[i])-v.begin();
		ans+=n-i-sum(c-1);add(c,1);
	}
	printf("%lld\n",ans);
}
