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
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
/*
 * =====================================================================================
 *
 *       Filename:  BOH.cpp
 *
 *    Description:  
 *
 *        Version:  1.0
 *        Created:  13.05.2014 20:01:44
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  YOUR NAME (), 
 *   Organization:  
 *
 * =====================================================================================
 */

#include <iostream>
#include <vector>
#include <utility>
#include <algorithm>

using namespace std;

typedef long long Ulli;

struct Monster{
	Ulli first;
	Ulli second;
	Ulli idx;
};

Ulli n, h;
vector<Monster>Tpp;
vector<Monster>Tmm;


bool cmp(Monster A, Monster B){
	return A.first < B.first;
}

bool cmp2(Monster A, Monster B){
	return A.second> B.second;
}
int main()
{
	ios_base::sync_with_stdio(0);
	
	int a, b, r;
	bool flaga = true;

	cin >> n >> h;

	for(int i=0; i<n; ++i)
	{
		Monster tmp;
		cin >> a >> b;
		r = b - a;

		tmp.first = a;
		tmp.second = b;
		tmp.idx = i+1;

		if(r >= 0)
			Tpp.push_back(tmp);
		else
			Tmm.push_back(tmp);
	}
	sort(Tpp.begin(), Tpp.end(), cmp);	
	sort(Tmm.begin(), Tmm.end(), cmp2);

	for(int i=0; i<Tpp.size(); i++)
	{
		if(h - Tpp[i].first <= 0){ 
			cout << "NIE";
			flaga = false;
			return 0;
		} else {
			h = h - Tpp[i].first + Tpp[i].second;
		}
	}	

	for(int i=0; i<Tmm.size(); i++)
	{
		//cout << "HP = " << h << endl;
		if(h - Tmm[i].first <= 0){
			cout << "NIE";
			flaga = false;
			return 0;	
		} else {
			h = h - Tmm[i].first + Tmm[i].second;
		}
	}

	if(!flaga) cout << "NIE";
	else {
		cout << "TAK\n";
		for(int i = 0; i < Tpp.size(); i++)
			cout << Tpp[i].idx << " ";
		for(int i = 0; i < Tmm.size(); i++)
			cout << Tmm[i].idx << " ";	
	}

	return 0;
}