1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <cstdio>
#include <algorithm>
using namespace std;

struct str{
	int w1,w2,h1,h2;
	str(int w1=0, int w2=0, int h1=0, int h2=0): w1(w1), w2(w2), h1(h1), h2(h2) {}
} t[1000010];
bool cmp(str i, str j){
	if (i.w1!=j.w1) return i.w1<j.w1;
	if (i.w2!=j.w2) return i.w2>j.w2;
	if (i.h1!=j.h1) return i.h1<j.h1;
					return i.h2>j.h2;
}
int z,n;
int main(){
	scanf("%d", &z);
	while (z--){
		scanf("%d", &n);
		for (int i=0; i<n; ++i){
			int a,b,c,d;
			scanf("%d%d%d%d", &a, &b, &c, &d);
			t[i]=str(a,b,c,d);
		}
		sort(t,t+n,cmp);
		int minh=t[1].h1, maxh=t[1].h2;
		for (int i=2; i<n; ++i){
			if (t[i].h1<minh) minh=t[i].h1;
			if (t[i].h2>maxh) maxh=t[i].h2;
		}
		if (t[0].h1<=minh && t[0].h2>=maxh) printf("TAK\n");
		else printf("NIE\n");
	}
	return 0;
}