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<iostream>
#include<map>
#include<algorithm>
using namespace std;
//1-indexed
#include<vector>
template<typename T>
struct BIT{
	int n;
	vector<T>bit;
	BIT(int n_=0,T a=0):n(n_),bit(n_+1,a){}
	T sum(int i)
	{
		T ans=0;
		for(;i>0;i-=i&-i)ans+=bit[i];
		return ans;
	}
	void add(int i,T a)
	{
		if(i==0)return;
		for(;i<=n;i+=i&-i)bit[i]+=a;
	}
};
int n;
long K,a[2<<17];
long sum[2<<17];
int main()
{
	cin>>n>>K;
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
		a[i]-=K;
	}
	for(int i=0;i<n;i++)sum[i+1]=sum[i]+a[i];
	map<long,int>M;
	vector<long>S;
	for(int i=0;i<=n;i++)S.push_back(sum[i]);
	sort(S.begin(),S.end());
	S.erase(unique(S.begin(),S.end()),S.end());
	for(int i=0;i<S.size();i++)M[S[i]]=i+1;
	BIT<int> P(S.size());
	long ans=0;
	for(int i=0;i<=n;i++)
	{
		ans+=P.sum(M[sum[i]]);
		P.add(M[sum[i]],1);
	}
	cout<<ans<<endl;
}
