#include #include #include #include #include #include #include #include #include #include #include #include #include #include typedef long long ll; using namespace std; #define sspeed ios_base::sync_with_stdio(0);cin.tie(0) #define maxn 2000001 #define mod 10007 #define eps 1e-9 int Num; char CH[20]; const int inf=0x3f3f3f3f; const ll infll = 0x3f3f3f3f3f3f3f3fLL; inline ll read() { ll x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } inline void P(int x) { Num=0;if(!x){putchar('0');puts("");return;} while(x>0)CH[++Num]=x%10,x/=10; while(Num)putchar(CH[Num--]+48); puts(""); } int g[50][50]; map H1; map H2; vector x; vector y; vector kiss[50]; struct node { int x1,x2,y1,y2; }a[100]; int main() { int t=read(); for(int cas=1;cas<=t;cas++) { memset(g,0,sizeof(g)); memset(a,0,sizeof(a)); H1.clear(); H2.clear(); x.clear(); y.clear(); for(int i=0;i<50;i++) kiss[i].clear(); int n=read(); for(int i=0;ia[i].x2) swap(a[i].x1,a[i].x2); if(a[i].y1>a[i].y2) swap(a[i].y1,a[i].y2); x.push_back(a[i].x1); x.push_back(a[i].x2); y.push_back(a[i].y1); y.push_back(a[i].y2); } sort(x.begin(),x.end()); sort(y.begin(),y.end()); x.erase(unique(x.begin(),x.end()),x.end()); y.erase(unique(y.begin(),y.end()),y.end()); for(int i=0;i