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;
typedef long long ll;
const int max_n=200005;
int n,k,a[max_n];
ll s[max_n];
int bit[max_n],tot;
void update(int i,int x){
    for(;i<=tot;i+=i&-i)bit[i]+=x;
}
int query(int i){
    int res=0;
    for(;i;i-=i&-i)res+=bit[i];
    return res;
}
int main(){
    scanf("%d%d",&n,&k);
    for(int i=1;i<=n;i++)scanf("%d",a+i);
    for(int i=1;i<=n;i++)s[i]=s[i-1]+a[i];
    for(int i=0;i<=n;i++)s[i]-=1ll*k*i;
    vector<ll> lsh;
    for(int i=0;i<=n;i++)lsh.push_back(s[i]);
    sort(lsh.begin(),lsh.end());lsh.erase(unique(lsh.begin(),lsh.end()),lsh.end());
    for(int i=0;i<=n;i++)s[i]=lower_bound(lsh.begin(),lsh.end(),s[i])-lsh.begin()+1;
    tot=lsh.size();
    ll ans=0;
    for(int i=0;i<=n;i++){
        ans+=query(s[i]);
        update(s[i],1);
    }
    printf("%lld\n",ans);
    return 0;
}