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>
typedef long long ll;
#define FOR(i,a,b) for(int i=(a);i<(b);i++)
#define REP(i,a) FOR(i,0,a)
	
using namespace std;
const int MAX_N=2e5;
int N;
ll K,a[MAX_N];
ll psm[MAX_N+1];
ll yse[MAX_N+1];
int bit[MAX_N+2];
void add(int x){
	while(x<=N+1){
		bit[x]++;
		x+=x&(-x);
	}
}
int query(int x){
	int ret=0;
	while(x){
		ret+=bit[x];
		x-=x&(-x);
	}
	return ret;
}
int main(){
	cin>>N>>K;
	psm[0]=0;
	REP(i,N){
		cin>>a[i];
		psm[i+1]=psm[i]+a[i];
	}
	REP(i,N+1){
		yse[i]=psm[i]-i*K;
	}
	{
		vector<ll> x;
		REP(i,N+1){
			x.push_back(yse[i]);
		}
		sort(x.begin(),x.end());
		x.erase(unique(x.begin(),x.end()),x.end());
		REP(i,N+1){
			yse[i]=lower_bound(x.begin(),x.end(),yse[i])-x.begin();
		}
	}
	ll ans=0;
	for(int i=N;i>=0;i--){
		ans+=(N-i)-query(yse[i]);
		add(yse[i]+1);
	}
	cout<<ans<<endl;
	return 0;
}