// https://szkopul.edu.pl/problemset/problem/kadKFW3YScAMW8o20u0BctQh/site/?key=statement
// XVI Łyżwy
#include <bits/stdc++.h>
// using namespace std;
#define int long long
constexpr int sizik = 200 * 1001;
#define ar std::array
#define pr std::pair
#define vec std::vector
typedef vec<vec<int>> _kra;
int n, m, k, d;
struct A {
int sum, psom, pref, suff;
A(int sum1 = 0, int p1 = 0, int pref1 = 0, int suff1 = 0) : sum(sum1), psom(p1), pref(pref1), suff(suff1) {};
};
A drz[3 * sizik];
void merge_drz(A& node, A const& left, A const& right) {
node.sum = left.sum + right.sum;
node.psom = std::max({left.psom, right.psom, left.suff + right.pref});
node.pref = std::max(left.pref, left.sum + right.pref);
node.suff = std::max(right.suff, right.sum + left.suff);
}
void add_to_node(A& node, int delta) {
node.pref += delta;
node.sum += delta;
node.psom += delta;
node.suff += delta;
}
void build(int v, int tl, int tr, int arr_size) {
if (tl == tr) {
if (tl <= arr_size) add_to_node(drz[v], -k);
} else {
int tm = (tl + tr) / 2;
build(2 * v, tl, tm, arr_size);
build(2 * v + 1, tm + 1, tr, arr_size);
merge_drz(drz[v], drz[2 * v], drz[2 * v + 1]);
}
}
void update(int v, int tl, int tr, int a, int delta) {
if (tl == tr) {
add_to_node(drz[v], delta);
} else {
int tm = (tl + tr) / 2;
if (a <= tm) {
update(v * 2, tl, tm, a, delta);
} else {
update(v * 2 + 1, tm + 1, tr, a, delta);
}
merge_drz(drz[v], drz[2 * v], drz[2 * v + 1]);
}
}
int get_ans() {
return drz[1].psom;
}
int get_next_pow_2(int v) {
v--;
v |= v >> 1;
v |= v >> 2;
v |= v >> 4;
v |= v >> 8;
v |= v >> 16;
v |= v >> 32;
v++;
return v;
}
bool check() {
int ans = get_ans();
bool isGood = ans <= (k * d);
return isGood;
}
void solve() {
std::cin >> n >> m >> k >> d;
int drz_size = get_next_pow_2(n - d);
build(1, 1, drz_size, n - d);
for (int i = 1; i <= m; i++) {
int r, x;
std::cin >> r >> x;
update(1, 1, drz_size, r, x);
// check
if (check()) {
std::cout << "TAK\n";
} else {
std::cout << "NIE\n";
}
}
}
int32_t main() {
std::ios_base::sync_with_stdio(0);
std::cin.tie(0);
std::cout.tie(0);
int t = 1;
// std::cin >> t;
for (; t > 0; t--) {
solve();
}
return 0;
}