#include <bits/stdc++.h>
#define fi first
#define se second
using namespace std;
using pii = pair <int, int>;
const int N = 1e5;
struct Fenwisk {
vector <long long> bit;
int n;
Fenwisk (int _n) {
n = _n;
bit.assign (n+3, 0);
}
long long get (int x) {
long long res = 0;
for (;x <= n; x += x&-x) res += bit [x];
return res;
}
void upd (int x, int val) {
for (;x > 0; x -= x&-x) bit [x] += val;
}
};
struct Fenwisk2 {
vector <long long> bit;
int n;
Fenwisk2 (int _n) {
n = _n;
bit.assign (n+3, 0);
}
long long get (int x) {
long long res = 0;
for (;x > 0; x -= x&-x) res += bit [x];
return res;
}
void upd (int x, int val) {
for (;x <= n; x += x&-x) bit [x] += val;
}
};
int main () {
ios_base::sync_with_stdio (false);
cin.tie (0); cout.tie (0);
long long K;
int n; cin >> n >> K;
vector <int> a (n+5);
for (int i=1; i<=n; i++) cin >> a [i];
vector <int> val = a;
sort (val.begin (), val.end ());
val.erase (unique (val.begin (), val.end ()), val.end ());
auto idx = [&](int x) {
return lower_bound (val.begin (), val.end (), x) - val.begin () + 1;
};
for (int i=1; i<=n; i++ )
a [i] = idx (a [i]);
Fenwisk fw (val.size ());
Fenwisk2 fen (val.size ());
long long ans = 0, res = 0;
int r = 2;
for (int i=n; i>=2; i--) {
res += fen.get (a [i]-1);
fen.upd (a [i],1);
}
long long full = res + fen.get (a [1]-1);
if (full <= K) return cout << 1LL*n*(n-1)/2, 0;
for (int i=1; i<=n; i++) {
res += fw.get (a [i]+1);
res += fen.get (a [i]-1);
fw.upd (a [i], 1);
while (res > K && r <= n) {
fen.upd (a [r], -1);
res -= fw.get (a [r]+1);
res -= fen.get (a [r]-1);
r++;
}
ans += n-r+1;
}
cout << ans;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgIGZpIGZpcnN0CiNkZWZpbmUgIHNlIHNlY29uZAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdXNpbmcgcGlpID0gcGFpciA8aW50LCBpbnQ+Owpjb25zdCBpbnQgTiA9IDFlNTsKc3RydWN0IEZlbndpc2sgewogICAgICAgIHZlY3RvciA8bG9uZyBsb25nPiBiaXQ7CiAgICAgICAgaW50IG47CiAgICAgICAgRmVud2lzayAoaW50IF9uKSB7CiAgICAgICAgICAgIG4gPSBfbjsKICAgICAgICAgICAgYml0LmFzc2lnbiAobiszLCAwKTsKICAgICAgICB9CiAgICAgICAgbG9uZyBsb25nIGdldCAoaW50IHgpIHsKICAgICAgICAgICAgbG9uZyBsb25nIHJlcyA9IDA7CiAgICAgICAgICAgIGZvciAoO3ggPD0gbjsgeCArPSB4Ji14KSByZXMgKz0gYml0IFt4XTsKICAgICAgICAgICAgcmV0dXJuIHJlczsKICAgICAgICB9CiAgICAgICAgdm9pZCB1cGQgKGludCB4LCBpbnQgdmFsKSB7CiAgICAgICAgICAgIGZvciAoO3ggPiAwOyB4IC09IHgmLXgpIGJpdCBbeF0gKz0gdmFsOwogICAgICAgIH0KfTsKc3RydWN0IEZlbndpc2syIHsKICAgICAgICB2ZWN0b3IgPGxvbmcgbG9uZz4gYml0OwogICAgICAgIGludCBuOwogICAgICAgIEZlbndpc2syIChpbnQgX24pIHsKICAgICAgICAgICAgbiA9IF9uOwogICAgICAgICAgICBiaXQuYXNzaWduIChuKzMsIDApOwogICAgICAgIH0KICAgICAgICBsb25nIGxvbmcgZ2V0IChpbnQgeCkgewogICAgICAgICAgICBsb25nIGxvbmcgcmVzID0gMDsKICAgICAgICAgICAgZm9yICg7eCA+IDA7IHggLT0geCYteCkgcmVzICs9IGJpdCBbeF07CiAgICAgICAgICAgIHJldHVybiByZXM7CiAgICAgICAgfQogICAgICAgIHZvaWQgdXBkIChpbnQgeCwgaW50IHZhbCkgewogICAgICAgICAgICBmb3IgKDt4IDw9IG47IHggKz0geCYteCkgYml0IFt4XSArPSB2YWw7CiAgICAgICAgfQp9OwppbnQgbWFpbiAoKSB7CiAgICAgICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyAoZmFsc2UpOwogICAgICAgIGNpbi50aWUgKDApOyAgICAgICAgIGNvdXQudGllICgwKTsgCiAgICAgICAgbG9uZyBsb25nIEs7CiAgICAgICAgaW50IG47IGNpbiA+PiBuID4+IEs7CiAgICAgICAgdmVjdG9yIDxpbnQ+IGEgKG4rNSk7CiAgICAgICAgZm9yIChpbnQgaT0xOyBpPD1uOyBpKyspIGNpbiA+PiBhIFtpXTsKCiAgICAgICAgdmVjdG9yIDxpbnQ+IHZhbCA9IGE7CiAgICAgICAgc29ydCAodmFsLmJlZ2luICgpLCB2YWwuZW5kICgpKTsKICAgICAgICB2YWwuZXJhc2UgKHVuaXF1ZSAodmFsLmJlZ2luICgpLCB2YWwuZW5kICgpKSwgdmFsLmVuZCAoKSk7CiAgICAgICAgYXV0byBpZHggPSBbJl0oaW50IHgpIHsKICAgICAgICAgICAgcmV0dXJuIGxvd2VyX2JvdW5kICh2YWwuYmVnaW4gKCksIHZhbC5lbmQgKCksIHgpIC0gdmFsLmJlZ2luICgpICsgMTsKICAgICAgICB9OwogICAgICAgIGZvciAoaW50IGk9MTsgaTw9bjsgaSsrICkKICAgICAgICAgICAgYSBbaV0gPSBpZHggKGEgW2ldKTsKICAgICAgICBGZW53aXNrIGZ3ICh2YWwuc2l6ZSAoKSk7CiAgICAgICAgRmVud2lzazIgZmVuICh2YWwuc2l6ZSAoKSk7CgogICAgICAgIGxvbmcgbG9uZyBhbnMgPSAwLCByZXMgPSAwOwogICAgICAgIGludCByID0gMjsKICAgICAgICBmb3IgKGludCBpPW47IGk+PTI7IGktLSkgewogICAgICAgICAgICByZXMgKz0gZmVuLmdldCAoYSBbaV0tMSk7CiAgICAgICAgICAgIGZlbi51cGQgKGEgW2ldLDEpOwogICAgICAgIH0KICAgICAgICBsb25nIGxvbmcgZnVsbCA9IHJlcyArIGZlbi5nZXQgKGEgWzFdLTEpOwogICAgICAgIGlmIChmdWxsIDw9IEspIHJldHVybiBjb3V0IDw8IDFMTCpuKihuLTEpLzIsIDA7CiAgICAgICAgZm9yIChpbnQgaT0xOyBpPD1uOyBpKyspIHsKICAgICAgICAgICAgcmVzICs9IGZ3LmdldCAoYSBbaV0rMSk7CiAgICAgICAgICAgIHJlcyArPSBmZW4uZ2V0IChhIFtpXS0xKTsKICAgICAgICAgICAgZncudXBkIChhIFtpXSwgMSk7CiAgICAgICAgICAgIHdoaWxlIChyZXMgPiBLICYmIHIgPD0gbikgewogICAgICAgICAgICAgICAgZmVuLnVwZCAoYSBbcl0sIC0xKTsKICAgICAgICAgICAgICAgIHJlcyAtPSBmdy5nZXQgKGEgW3JdKzEpOwogICAgICAgICAgICAgICAgcmVzIC09IGZlbi5nZXQgKGEgW3JdLTEpOwogICAgICAgICAgICAgICAgcisrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGFucyArPSBuLXIrMTsKICAgICAgICB9CiAgICAgICAgY291dCA8PCBhbnM7CiAgICAgICAgcmV0dXJuIDA7Cn0K