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 <cstdio>
#include <algorithm>
#include <map>

using namespace std;
typedef long long ll;
const int maxN=2e5+5;

map<ll,int>mp;
ll a[maxN],b[maxN],c[maxN],d[maxN];

int lowbit(int x)
{
    return x&(-x);
}

int getsum(int x)
{
    int sum=0;
    while(x)
    {
        sum+=c[x];
        x-=lowbit(x);
    }
    return sum;
}

void add(int x)
{
    while(x<maxN)
    {
        c[x]++;
        x+=lowbit(x);
    }
}

int main()
{
    ll k,n,m,K,ans=0;
    cin>>n>>K;
    for(k=1;k<=n;k++)
    {
        cin>>a[k];
        a[k]+=a[k-1];
        b[k]=a[k]-K*k;
        d[k]=b[k];
    }
    sort(b+1,b+n+1);
    m=unique(b+1,b+n+1)-b;
    for(k=1;k<m;k++)
    {
        mp[b[k]]=k;
    }
    for(k=1;k<=n;k++)
    {
        if(d[k]>=0)ans++;
        ans+=getsum(mp[d[k]]);
        add(mp[d[k]]);
    }
    cout<<ans;
    return 0;
}
