#include <bits/stdc++.h>
using namespace std;
const int MAX = 200005;
int modulo = 1e9 + 7;
long long ans, dp[MAX];
map<int, int> m;
set<int> s;
long long pow_mod(int x, long long y) {
  long long s = 1, base = (long long)x;
  while (y) {
    if (y & 1) s = s * base % modulo;
    base = base * base % modulo;
    y >>= 1;
  }
  return s;
}
void init(int n, int k) {
  dp[k] = 1;
  for (int i = k + 1; i <= n; i++) {
    dp[i] = dp[i - 1] * i % modulo * pow_mod(i - k, modulo - 2) % modulo;
  }
}
int main() {
  int n, k;
  scanf("%d%d", &n, &k);
  init(n, k);
  for (int i = 0; i < n; i++) {
    int l, r;
    scanf("%d%d", &l, &r);
    m[l - 1]++;
    s.insert(l - 1);
    m[r]--;
    s.insert(r);
  }
  int num = 0, len, pre = 0;
  set<int>::iterator it;
  for (it = s.begin(); it != s.end(); it++) {
    len = (*it - pre) % modulo;
    ans += len * dp[num] % modulo;
    ans = ans % modulo;
    num += m[*it];
    pre = *it;
  }
  cout << ans << endl;
  return 0;
}
