#include <cstdio>
#include <iostream>
#include <cmath>
#include <vector>
#include <algorithm>
#include <set>
#include <map>
using namespace std;
int t, n;
struct {
bool operator()(pair<int, int> a, pair<int, int> b) const {
if(a.second==b.second) return a.first<b.first;
return a.second > b.second;
}
} x;
struct {
bool operator()(pair<int, int> a, pair<int, int> b) const {
if(a.second==b.second) return a.first>b.first;
return a.second > b.second;
}
} y;
int l1, a1, b1;
vector<pair<int, int>> v1, v2;
int main(){
scanf("%d", &t);
while(t--){
bool r=true;
scanf("%d", &n);
v1.clear();
v2.clear();
long long s1=0, s2=0;
for(int i=1; i<=n; i++){
scanf("%d %d %d", &l1, &a1, &b1);
s1+=l1*a1;
s2+=l1*b1;
v1.push_back(make_pair(l1*a1, a1));
v2.push_back(make_pair(l1*b1, b1));
}
if(s2!=s1){
printf("NIE\n");
continue;
}
sort(v1.begin(), v1.end(), y);
sort(v2.begin(), v2.end(), x);
if(v1.begin()->second < v2.begin()->second || v1.back().second>v2.back().second){
r=false;
}else if(v1.begin()->second == v2.begin()->second && v1.back().second == v2.back().second){
r=(v1.begin()->first >= v2.begin()->first && v1.back().first >= v2.back().first);
}else if(v1.begin()->second == v2.begin()->second && v1.back().second < v2.back().second){
r = (v1.begin()->first >= v2.begin()->first);
}else if(v1.begin()->second > v2.begin()->second && v1.back().second == v2.back().second){
r = (v1.back().first >= v2.back().first);
}else{
r=true;
}
if(r){
printf("TAK\n");
}else{
printf("NIE\n");
}
}
return 0;
}