OI I - prz

// https://szkopul.edu.pl/problemset/problem/_eiKtK6ANqMn5Nfl6UNJksjy/site/?key=statement

// Przedsięwzięcie

#include <bits/stdc++.h>

// #define GARY_DBG
#define GARY_LIB

constexpr int sizik = 100 * 1001;

#define int int64_t

#define ar std::array

typedef std::vector<std::vector<int>> _kra;

int t[sizik];

std::vector<int> kra[sizik];
std::vector<int> kra1[sizik];

int wchodzi[sizik];
int dp[sizik];
int granp[sizik];

void solve() {
    int n;
    std::cin >> n;

    for (int i = 1; i <= n; i++) {
        int k;
        std::cin >> t[i] >> k;
        for (int j = 0; j < k; j++) {
            int a;
            std::cin >> a;
            kra[a].push_back(i);
            kra1[i].push_back(a);
            wchodzi[i]++;
        }
    }

    // topo sort!
    int ile = 0;
    std::queue<int> kolejka;

    std::vector<int> kolejnosc;

    for (int i = 1; i <= n; i++) {
        if (wchodzi[i] == 0) {
            kolejka.push(i);
            ile++;
        }
    }

    while (!kolejka.empty()) {
        int i = kolejka.front();
        kolejnosc.push_back(i);
        kolejka.pop();
        for (const auto& a : kra[i]) {
            if (--wchodzi[a] == 0) {
                kolejka.push(a);
                ile++;
            }
        }
    }

    if (ile != n) {
        std::cout << "CYKL\n";
        return;
    }

    // jest jakaś odp.
    // policz dp
    int ansix = 0;
    for (const auto& a : kolejnosc) {
        int v = 0;
        for (const auto& b : kra1[a]) {
            v = std::max(v, dp[b]);
        }
        dp[a] = t[a] + v;
        ansix = std::max(ansix, dp[a]);
    }

    std::reverse(kolejnosc.begin(), kolejnosc.end());
    for (const auto& a : kolejnosc) {
        if (kra[a].empty()) {
            granp[a] = ansix - dp[a];
        } else {
            granp[a] = INT64_MAX;
            for (const auto& e : kra[a]) {
                granp[a] = std::min(granp[a], dp[e] - dp[a] - t[e] + granp[e]);
            }
        }
    }

    std::cout << ansix << '\n';

    int q;
    std::cin >> q;

    for (; q > 0; q--) {
        int a, b;
        std::cin >> a >> b;

        if (b > granp[a]) {
            std::cout << "TAK\n";
        } else {
            std::cout << "NIE\n";
        }
    }
}

int32_t main() {
#ifndef GARY_DBG
    std::ios_base::sync_with_stdio(0);
    std::cin.tie(0);
    std::cout.tie(0);
#endif

    int t = 1;
    // std::cin >> t;

    for (; t > 0; t--) {
        solve();
    }

    return 0;
}