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
import sys
input = sys.stdin.readline
sys.setrecursionlimit(pow(10, 6))

acca = []

def merge(n, l, m, r):
    global acca
    cnt = 0
    n1, n2 = m - l, r - m
    la, ra = [], []
    for i in range(n1):
        la.append(acca[l + i])
    for i in range(n2):
        ra.append(acca[m + i])
    la.append(float("inf"))
    ra.append(float("inf"))
    i, j = 0, 0
    for k in range(l, r):
        if la[i] <= ra[j]:
            acca[k] = la[i]
            i += 1
        else:
            acca[k] = ra[j]
            j += 1
            cnt += n1 - i
    return cnt


def mergesort(n, l, r):
    if l + 1 < r:
        m = (l + r) // 2
        c1 = mergesort(n, l, m)
        c2 = mergesort(n, m, r)
        c3 = merge(n, l, m, r)
        return c1 + c2 + c3
    else:
        return 0


def main():
    global acca
    n, k = map(int, input().split())
    a = [int(input()) for _ in range(n)]
    a = [_a - k for _a in a]
    acca = [0 for i in range(n + 1)]
    for i, _a in enumerate(a):
        acca[i + 1] = acca[i] + _a

    print(n * (n + 1) // 2 - mergesort(n + 1, 0, n + 1))


if __name__ == '__main__':
    main()
