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;
typedef long long ll;
int n,K,a[N],t[N];
ll s[N],x[N];

void ins(int a){for(;a<=x[0];a+=a&-a)++t[a];}
int qry(int a){int ret=0;for(;a;a-=a&-a)ret+=t[a];return ret;}

int main(){
	scanf("%d%d",&n,&K);
	for(int i=1;i<=n;++i)scanf("%d",a+i),s[i]=s[i-1]+a[i]-K;
	for(int i=0;i<=n;++i)x[++x[0]]=s[i];
	sort(x+1,x+1+x[0]);
	x[0]=unique(x+1,x+1+x[0])-x-1;
	for(int i=0;i<=n;++i)s[i]=lower_bound(x+1,x+1+x[0],s[i])-x;
	ll ans=0;
	ins(s[0]);
	for(int i=1;i<=n;++i)ans+=qry(s[i]),ins(s[i]);
	printf("%lld\n",ans);
	return 0;
}
