#include <bits/stdc++.h>
#define ll long long
#define ii pair<int, int>
#define st first
#define nd second
#define endl "\n"
#define all(v) v.begin(), v.end()
using namespace std;
const int MAXN = 1e6 + 5;
int n, k, Max[MAXN];
vector<int> s[MAXN];
struct FenwickTree{
int fen[MAXN + 10];
int n = 1000005;
void update (int u, int val){
for (; u <= n; u += (u & (-u))) fen[u] += val;
}
int get (int u){
int ans = 0;
for (; u; u -= (u & (-u))) ans += fen[u];
return ans;
}
int get (int l, int r){
return get(r) - get(l - 1);
}
} d;
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> n >> k;
memset(Max, -1, sizeof(Max));
for (int i = 1; i <= n; i++){
int x, y;
cin >> x >> y;
Max[y] = max(Max[y], x);
s[y].push_back(x);
d.update(x, 1);
}
for (int i = (int)1e6; i >= 0; i--){
Max[i] = max(Max[i + 1], Max[i]);
}
ll ans = 0;
int pt = Max[1];
int furthest = Max[1];
for (int y = 1; y <= (int)1e6; y++){
int x = Max[y];
if (x == -1) break;
int ins = (pt + 1 > x) ? 0 : d.get(pt + 1, x);
while (pt && ins + d.get(pt, pt) <= k){
int val = d.get(pt, pt);
if (val) furthest = pt;
ins += val;
pt--;
}
if (ins == k){
ans += furthest - pt;
}
for (auto x : s[y]){
d.update(x, -1);
}
}
cout << ans << endl;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgaWkgcGFpcjxpbnQsIGludD4KI2RlZmluZSBzdCBmaXJzdAojZGVmaW5lIG5kIHNlY29uZAojZGVmaW5lIGVuZGwgIlxuIgojZGVmaW5lIGFsbCh2KSB2LmJlZ2luKCksIHYuZW5kKCkKIAp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmNvbnN0IGludCBNQVhOID0gMWU2ICArIDU7CiAKaW50IG4sIGssIE1heFtNQVhOXTsKdmVjdG9yPGludD4gc1tNQVhOXTsKIApzdHJ1Y3QgRmVud2lja1RyZWV7CiAgICBpbnQgZmVuW01BWE4gKyAxMF07CiAgICBpbnQgbiA9IDEwMDAwMDU7CiAKICAgIHZvaWQgdXBkYXRlIChpbnQgdSwgaW50IHZhbCl7CiAgICAgICAgZm9yICg7IHUgPD0gbjsgdSArPSAodSAmICgtdSkpKSBmZW5bdV0gKz0gdmFsOwogICAgfQogCiAgICBpbnQgZ2V0IChpbnQgdSl7CiAgICAgICAgaW50IGFucyA9IDA7CiAgICAgICAgZm9yICg7IHU7IHUgLT0gKHUgJiAoLXUpKSkgYW5zICs9IGZlblt1XTsKICAgICAgICByZXR1cm4gYW5zOwogICAgfQogCiAgICBpbnQgZ2V0IChpbnQgbCwgaW50IHIpewogICAgICAgIHJldHVybiBnZXQocikgLSBnZXQobCAtIDEpOwogICAgfQogICAgCn0gZDsKIAogCnNpZ25lZCBtYWluKCl7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoMCk7CiAKICAgIGNpbiA+PiBuID4+IGs7CiAKICAgIG1lbXNldChNYXgsIC0xLCBzaXplb2YoTWF4KSk7CiAKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKyl7CiAgICAgICAgaW50IHgsIHk7CiAgICAgICAgY2luID4+IHggPj4geTsKICAgICAgICBNYXhbeV0gPSBtYXgoTWF4W3ldLCB4KTsKICAgICAgICBzW3ldLnB1c2hfYmFjayh4KTsKIAogICAgICAgIGQudXBkYXRlKHgsIDEpOwogICAgfQogCiAgICBmb3IgKGludCBpID0gKGludCkxZTY7IGkgPj0gMDsgaS0tKXsKICAgICAgICBNYXhbaV0gPSBtYXgoTWF4W2kgKyAxXSwgTWF4W2ldKTsKICAgIH0KIAogCiAgICBsbCBhbnMgPSAwOwogICAgaW50IHB0ID0gTWF4WzFdOwogICAgaW50IGZ1cnRoZXN0ID0gTWF4WzFdOwogCiAKICAgIGZvciAoaW50IHkgPSAxOyB5IDw9IChpbnQpMWU2OyB5KyspewogICAgICAgIGludCB4ID0gTWF4W3ldOwogICAgICAgIAogICAgICAgIGlmICh4ID09IC0xKSBicmVhazsKICAgICAgICBpbnQgaW5zID0gKHB0ICsgMSA+IHgpID8gMCA6IGQuZ2V0KHB0ICsgMSwgeCk7CiAgICAgICAgd2hpbGUgKHB0ICYmIGlucyArIGQuZ2V0KHB0LCBwdCkgPD0gayl7CiAgICAgICAgICAgIGludCB2YWwgPSBkLmdldChwdCwgcHQpOwogICAgICAgICAgICBpZiAodmFsKSBmdXJ0aGVzdCA9IHB0OwogICAgICAgICAgICBpbnMgKz0gdmFsOwogICAgICAgICAgICBwdC0tOwogICAgICAgIH0KIAogICAgICAgIGlmIChpbnMgPT0gayl7CiAgICAgICAgICAgIGFucyArPSBmdXJ0aGVzdCAtIHB0OwogICAgICAgIH0KICAgIAogICAgICAgIGZvciAoYXV0byB4IDogc1t5XSl7CiAgICAgICAgICAgIGQudXBkYXRlKHgsIC0xKTsKICAgICAgICB9CiAKIAogICAgfQogCiAgICBjb3V0IDw8IGFucyA8PCBlbmRsOwp9Cg==