#include<bits/stdc++.h>
#define ll long long
#define pb push_back
using namespace std;
const int maxn=2e5+10;
const int mod=1e9+7;
struct ac
{
    int l,r;
};
ac a[maxn];
int n1,n2;

int tree1[maxn],tree2[maxn];

int lowbits(int x)
{
    return x&-x;
}

void add1(int x,int v)
{
    while(x<=n1)
    {
        tree1[x]+=v;
        x+=lowbits(x);
    }
}
int query1(int x)
{
    int ans=0;
    while(x)
    {
        ans+=tree1[x];
        x-=lowbits(x);
    }
    return ans;
}

void add2(int x,int v)
{
    while(x<=n2)
    {
        tree2[x]+=v;
        x+=lowbits(x);
    }
}
int query2(int x)
{
    int ans=0;
    while(x)
    {
        ans+=tree2[x];
        x-=lowbits(x);
    }
    return ans;
}
vector<int>V1,V2;
void dis()
{
    sort(V1.begin(),V1.end());
    V1.erase(unique(V1.begin(),V1.end()),V1.end());
    sort(V2.begin(),V2.end());
    V2.erase(unique(V2.begin(),V2.end()),V2.end());
}
int num1(int x)
{
    return lower_bound(V1.begin(),V1.end(),x)-V1.begin()+1;
}
int num2(int x)
{
    return lower_bound(V2.begin(),V2.end(),x)-V2.begin()+1;
}


int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    int t;
    cin>>t;
    while(t--)
    {
       int n;
       cin>>n;
       V1.clear();V2.clear();
       for(int i=1;i<=n;i++)
       {
           cin>>a[i].l>>a[i].r;
           V1.pb(a[i].r);
           V2.pb(a[i].l);
       }
       dis();
       n1=V1.size();
       n2=V2.size();
       for(int i=1;i<=max(n1,n2);i++)
        tree1[i]=tree2[i]=0;

       for(int i=1;i<=n;i++)
       {
            int l=a[i].l,r=a[i].r;
            add1(num1(r),1);
            add2(num2(l),1);
       }
       int ans=1e9;
       for(int i=1;i<=n;i++)
       {
           int temp=0,l=a[i].l,r=a[i].r;
           int temp1=query1(num1(l)-1);
           int p=upper_bound(V2.begin(),V2.end(),r)-V2.begin()+1;
           p--;
           int temp2=query2(n2)-query2(p);
           temp=temp1+temp2;
           ans=min(ans,temp);
       }
       cout<<ans<<'\n';

    }




}
