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
#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
    int t, ile, wys;
    cin >> t;
    bool str;
    for(int i = 0; i<t; i++)
    {
        str = false;
        cin >> ile >> wys;
        bool tabczy [ile][ile];
        for(int j = 0; j<ile; j++)
        {
            for(int k = 0; k<ile; k++)
            {
                tabczy[j][k] = false;
            }
        }
        pair < int, pair < int, pair < int, pair <int, int> > > > sam[ile];
        for(int j = 0; j<2*ile; j++)
        {
            cin >> sam[j].first;                          // 1
            cin >> sam[j].second.first;                   // 2
            cin >> sam[j].second.second.first;            // 3
            cin >> sam[j].second.second.second.first;     // 4
            sam[j].second.second.second.second = j%ile;   // 5
        }
        sort(sam, sam+ile);
        sort(sam+ile, sam+2*ile);
        for(int j = 0; j<ile; j++)
        {
            for(int k = j; k<ile; k++)
            {
                if(sam[j].second.second.second.first-sam[j].second.first+sam[k].second.second.second.first-sam[k].second.first>wys)
                {
                    tabczy[sam[j].second.second.second.second][sam[k].second.second.second.second]=true;
                }
            }
        }
        for(int j = ile+1; j<2*ile; j++)
        {
            for(int k = ile; k<j; k++)
            {
                if(tabczy[sam[j].second.second.second.second][sam[k].second.second.second.second])
                {
                    str = true;
                    break;
                }
            }
            if(str) break;
        }
        if(str) cout << "NIE" << endl;
        else cout << "TAK" << endl;
    }
    return 0;
}