#include <bits/stdc++.h>
using namespace std;

map<string, int> ostatnie;

struct typ {
	string s;
	int t;
	int i;
};

deque<typ> kolejka;


int main() {
    int n, b;
    
    cin >> n >> b;
    
    int akt = 0;
    
    for(int i=0; i<n; i++) {
        string s;
        int trudnosc;
        cin >> s >> trudnosc;
        
        if(ostatnie.find(s)!=ostatnie.end()&&!kolejka.empty()&&kolejka.back().i<=ostatnie[s]) {
            cout << "TAK\n";
        }
        
        else {
            cout << "NIE ";
            vector<string> z;
            akt += trudnosc;
            while(akt>b) {
    if(ostatnie[kolejka.back().s] != kolejka.back().i) {
        kolejka.pop_back();
    }
            
            else {
                akt -= kolejka.back().t;
                z.push_back(kolejka.back().s);
                kolejka.pop_back();
                
            }
        }
        
        cout << z.size() << " ";
        for(auto ele :z) {
            cout << ele << " ";
        }
        
        cout << "\n";
        }
        kolejka.push_front({s, trudnosc, i});
    
        
        
        
        ostatnie[s] = i;
    }
    
    return 0;
}