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
#define ASIZE 200005
#include <bits/stdc++.h>
using namespace std;
long long ft[ASIZE],n=ASIZE+1;
typedef pair<long long,long long> pii;

void increment(long long p){
  for(;p<=n;p+=(p & -p))ft[p]++;
}

long long query(long long p){
  long long sum=0;
  for(;p>0;p-=(p & -p))sum+=ft[p];
  return sum;
}

int main() {
  long long n,k,a[ASIZE]={0},ps[ASIZE],x,sum=0;
  priority_queue<pii,vector<pii>,greater<pii> >pq;
  cin>>n>>k;
  for(long long i=1;i<=n;i++){
    cin>>a[i];
    a[i]-=k;
    ps[i]=ps[i-1]+a[i];
    pq.emplace(ps[i],i);
  }
  while(!pq.empty()){
    x=pq.top().second;
 //   cout<<"x= "<<x<<"\n";
    sum+=query(x);
    increment(x);
    if(pq.top().first>=0)sum++;
    pq.pop();
  }
  cout<<sum;
  return 0;
}