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;

const int N = 200005;

int n, k;
int a[N];
long long b[N];
map<long long, int> ma;
int sz;
long long fen[N];

long long fget(int i) {
  long long ret = 0;
  while (i > 0) {
    ret += fen[i];
    i -= i & -i;
  }
  return ret;
}

void fset(int i, int val) {
  while (i < N) {
    fen[i] += val;
    i += i & -i;
  }
}

int main() {
  scanf("%d %d", &n, &k);
  for (int i = 0; i < n; i++) scanf("%d", a + i);
  long long sum = 0;
  for (int i = 0; i < n; i++) {
    sum += a[i];
    b[i + 1] = sum - (long long) (i + 1) * k;
    ma[b[i + 1]];
  }
  ma[0];
  for (auto &it : ma) it.second = ++sz;
  long long ans = 0;
  for (int i = 0; i <= n; i++) {
    int index = ma[b[i]];
    ans += fget(index);
    fset(index, 1);
  }
  printf("%lld\n", ans);
  return 0;
}