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
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
#include <cstdio>
#include <vector>
#include <cassert>
#include <random>
#include <algorithm>
#include <cstdlib>

#define REP(i,n) for(int i=0; i<(n); ++i)

template<typename T> inline void checkmin(T &a, T b){ if(a>b) a = b; }
template<typename T> inline void checkmax(T &a, T b){ if(a<b) a = b; }

struct Rect
{
  int w1,w2,h1,h2;
  void bound(const Rect r)
  {
    checkmin(w1,r.w1);
    checkmax(w2,r.w2);
    checkmin(h1,r.h1);
    checkmax(h2,r.h2);
  }
  bool operator==(const Rect r) const
  { return w1==r.w1 && w2==r.w2 && h1==r.h1 && h2==r.h2; }
};

std::mt19937 rnd(78923794);

struct In
{
  std::vector<Rect> R;
  
  void read()
  {
    int n; scanf("%d",&n); R.resize(n);
    REP(i,n) scanf("%d%d%d%d",&R[i].w1,&R[i].w2,&R[i].h1,&R[i].h2);
  }
  
  void gen()
  {
    int n = 50, x = 10;
    R.resize(n);
    for(auto &r : R)
    {
      r.w1 = rnd()%x;
      r.w2 = rnd()%x;
      r.h1 = rnd()%x;
      r.h2 = rnd()%x;
      if(r.w1>r.w2) std::swap(r.w1,r.w2);
      if(r.h1>r.h2) std::swap(r.h1,r.h2);
    }
  }
};

bool go(const std::vector<Rect> &R)
{
  Rect box = R[0];
  for(auto &r : R) box.bound(r);
  for(auto &r : R) if(r==box) return 1;
  return 0;
}

bool brute(const std::vector<Rect> &R)
{
  for(auto r : R)
  {
    bool ok = 1;
    for(auto s : R)
      if(s.w1<r.w1 || r.w2<s.w2 || s.h1<r.h1 || r.h2<s.h2) ok = 0;
    if(ok) return 1;
  }
  return 0;
}

void test()
{
  for(int c=0,yes=0;; c++)
  {
    In I; I.gen();
    if(go(I.R)!=brute(I.R))
    {
      printf("ERROR");
      for(auto r : I.R) printf("%d %d %d %d\n",r.w1,r.w2,r.h1,r.h2);
      exit(1);
    }
    if(go(I.R)) yes++;
    if(!(c%10000)) printf("ok %d; yes %d\n",c,yes);
  }
}

int main()
{
  //test();
  int t; scanf("%d",&t);
  while(t--)
  {
    In I; I.read();
    puts(go(I.R)?"TAK":"NIE");
  }
  return 0;
}