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
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct smok{
	int minus;
	int plus;
	int diff;
	int nr;
};
vector <smok> t;
bool sorting(smok a, smok b)
	{
	if(a.diff*b.diff<0) 
		{
		if(a.diff>b.diff) return 1;
		return 0;
		}
	else if(a.diff==0 || b.diff==0)
		{
		if(a.diff==0) return 1;
		return 0;
		}
	else	
		{
		if(a.diff>0)
			{
			if(a.minus>b.minus) return 0;
			return 1;
			}
		else
			{
			if(a.minus>b.minus) return 1;
			return 0;
			}
		}
	}
int main()
	{
	ios_base::sync_with_stdio(0);
	int ile, hp;
	smok tmp;
	cin>> ile >> hp;
	for(int i=0;i<ile;i++)
		{
		cin>> tmp.minus >> tmp.plus;
		tmp.diff=tmp.plus-tmp.minus;
		tmp.nr=i+1;
		t.push_back(tmp);
		}
	sort(t.begin(),t.end(), sorting);
	bool czy=1;
	for(int i=0;i<ile;i++)
		{
		hp-=t[i].minus;
		if(hp<=0)
			{
			czy=0;
			break;
			}
		hp+=t[i].plus;
		}
	if(czy) 
		{
		cout<< "TAK" <<endl;
		for(int i=0;i<ile;i++)
			{
			cout<< t[i].nr << " ";
			}
		cout<< endl;
		}
	else cout<< "NIE" <<endl;
	
	}