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>
using namespace std;


int N, K, a[200000];
long long b[200001], c[200001];


int bit[1000010];
void add(int a, int w){
    for(int x = a; x <= N+1; x += x & -x) bit[x] += w;
}
int sum(int a){
    int ret = 0;
    for(int x = a; x > 0; x -= x & -x) ret += bit[x];
    return ret;
}




int main(){
    cin >> N >> K;
    for(int i = 0; i < N; i++){
        cin >> a[i];
    }
    b[0] = 0 - 0*K;
    c[0] = 0;
    long long tmp[200001];
    tmp[0] = 0;
    for(int i = 1; i <= N; i++){
        b[i] = b[i-1] + a[i-1] - K;
        tmp[i] = b[i];
    }

    long long ans = 0;
    sort(tmp, tmp+N+1);
    for(int i = 0; i <= N; i++){
        c[i] = lower_bound(tmp, tmp+N+1, b[i]) - tmp;
        ans += sum(c[i]+1);
        add(c[i]+1, 1);
    }
    cout << ans << endl;

   

    
}