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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <cstdio>
#include <vector>
using namespace std;

struct Dim{
	int w1, w2, h1, h2;
};

int main(){
	int t, n;
	vector<Dim> dims;
	
	scanf("%d", &t);
	
	for(int i=0; i<t; i++){
		scanf("%d", &n);
		dims.clear();
		dims.reserve(n);
		
		int minW = 1000000001;
		int minH = 1000000001;
		int maxW = 0;
		int maxH = 0;
		
		for(int j=0; j<n; j++){
			Dim dim;
			scanf("%d%d%d%d", &dim.w1, &dim.w2, &dim.h1, &dim.h2);
			dims.push_back(dim);
			
			if(dim.w1 < minW) minW = dim.w1;
			if(dim.w2 > maxW) maxW = dim.w2;
			if(dim.h1 < minH) minH = dim.h1;
			if(dim.h2 > maxH) maxH = dim.h2;
		}
		
		bool exist = false;
		
		for(int j=0; j<n; j++){
			Dim &dim = dims[j];
			
			if(dim.w1 == minW && dim.w2 == maxW && dim.h1 == minH && dim.h2 == maxH){
				exist = true;
				break;
			}
		}
		
		if(exist)
			printf("TAK\n");
		else
			printf("NIE\n");
	}
	
	return 0;
}