#include <stdio.h>
#include <algorithm>
using namespace std;
#define MN 505
struct data {
int s, d;
} w[MN];
int n;
inline int fmax(int a,int b) { return a>b?a:b; }
inline bool cmp(data d1, data d2) {
if (d1.d == d2.d) return d1.s > d2.s;
return d1.d < d2.d;
}
int main() {
int runs, sum, M1, M2, t, d, sol;
for (scanf("%d",&runs); runs--; ) {
scanf("%d",&n);
for (int i = 0; i < n; i++) scanf("%d%d",&w[i].s,&w[i].d);
sort(w, w+n, cmp);
sum = M1 = M2 = 0;
for (int i = 0; i < n; i++) {
sum += w[i].s;
t = fmax(sum-w[i].d, 0);
if (t > M1) M2 = M1, M1 = t, d = i;
else if (t > M2) M2 = t, d=i;
}
sol = M1+M2;
for (int i = 0; i < d; i++) {
sum = M1 = M2 = 0;
for (int j = 0; j <= d; j++) {
if (i == j) continue;
sum += w[j].s;
t = fmax(sum-w[j].d, 0);
if (t > M1) M2 = M1, M1 = t;
else if (t > M2) M2 = t;
}
sum += w[i].s;
t = fmax(sum-w[i].d, 0);
if (t > M1) M2 = M1, M1 = t;
else if(t > M2) M2 = t;
if (sol > M1+M2) sol = M1+M2;
}
printf("%d\n",sol);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxhbGdvcml0aG0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgTU4gNTA1CnN0cnVjdCBkYXRhIHsKCWludCBzLCBkOwp9IHdbTU5dOwppbnQgbjsKaW5saW5lIGludCBmbWF4KGludCBhLGludCBiKSB7IHJldHVybiBhPmI/YTpiOyB9CmlubGluZSBib29sIGNtcChkYXRhIGQxLCBkYXRhIGQyKSB7CglpZiAoZDEuZCA9PSBkMi5kKSByZXR1cm4gZDEucyA+IGQyLnM7CglyZXR1cm4gZDEuZCA8IGQyLmQ7Cn0KaW50IG1haW4oKSB7CglpbnQgcnVucywgc3VtLCBNMSwgTTIsIHQsIGQsIHNvbDsKCWZvciAoc2NhbmYoIiVkIiwmcnVucyk7IHJ1bnMtLTsgKSB7CgkJc2NhbmYoIiVkIiwmbik7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHNjYW5mKCIlZCVkIiwmd1tpXS5zLCZ3W2ldLmQpOwoJCXNvcnQodywgdytuLCBjbXApOwoJCXN1bSA9IE0xID0gTTIgPSAwOwoJCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CgkJCXN1bSArPSB3W2ldLnM7CgkJCXQgPSBmbWF4KHN1bS13W2ldLmQsIDApOwoJCQlpZiAodCA+IE0xKSBNMiA9IE0xLCBNMSA9IHQsIGQgPSBpOwoJCQllbHNlIGlmICh0ID4gTTIpIE0yID0gdCwgZD1pOwoJCX0KCQlzb2wgPSBNMStNMjsKCQlmb3IgKGludCBpID0gMDsgaSA8IGQ7IGkrKykgewoJCQlzdW0gPSBNMSA9IE0yID0gMDsKCQkJZm9yIChpbnQgaiA9IDA7IGogPD0gZDsgaisrKSB7CgkJCQlpZiAoaSA9PSBqKSBjb250aW51ZTsKCQkJCXN1bSArPSB3W2pdLnM7CgkJCQl0ID0gZm1heChzdW0td1tqXS5kLCAwKTsKCQkJCWlmICh0ID4gTTEpIE0yID0gTTEsIE0xID0gdDsKCQkJCWVsc2UgaWYgKHQgPiBNMikgTTIgPSB0OwoJCQl9CgkJCXN1bSArPSB3W2ldLnM7CgkJCXQgPSBmbWF4KHN1bS13W2ldLmQsIDApOwoJCQlpZiAodCA+IE0xKSBNMiA9IE0xLCBNMSA9IHQ7CgkJCWVsc2UgaWYodCA+IE0yKSBNMiA9IHQ7CgkJCWlmIChzb2wgPiBNMStNMikgc29sID0gTTErTTI7CgkJfQoJCXByaW50ZigiJWRcbiIsc29sKTsKCX0KCXJldHVybiAwOwp9