#include <bits/stdc++.h> using namespace std; const int MaxN = (int)2e5 + 10; const int INF = (int)1e9; const int MOD = (int)1e9 + 7; int n, k; int l[MaxN], r[MaxN]; int ord[MaxN]; bool cmp(int x, int y) { return l[x] < l[y] || l[x] == l[y] && r[x] < r[y]; } int rnd(int l, int r) { return (1LL * RAND_MAX * rand() + rand()) % (r - l + 1) + l; } void solve() { scanf("%d%d", &n, &k); for (int i = 1; i <= n; ++i) { scanf("%d%d", &l[i], &r[i]); ord[i] = i; } sort(ord + 1, ord + n + 1, cmp); multiset <int> rr; int ans = 0; for (int i = 1; i <= n; ++i) { rr.insert(r[ord[i]]); if ((int)rr.size() > k) { rr.erase(rr.begin()); } if (i >= k) { ans = max(ans, *rr.begin() - l[ord[i]]); } } cout << ans << "\n"; } int main() { // freopen("input.txt", "r", stdin); // freopen("output.txt", "w", stdout); srand(time(NULL)); int t = 1e4; scanf("%d", &t); while (t --> 0) { solve(); } return 0; }