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
#include <iostream>


using namespace std;
	int tab[3][100000];
	char ch[200000];
	void sortuj (int tab[3][100000], int n)
	{
		for (int i=1;i<n+1;i++)
		{	int maks=i;
			for (int j=i+1;j<n+1;j++)
			{
				if (tab[2][j]>tab[2][maks])
				maks=j;
				
			}
			if (tab[2][i]<tab[2][maks])
			swap(tab[2][i],tab[2][maks]);
			swap(tab[1][i],tab[1][maks]);
			swap(tab[0][i],tab[0][maks]);
		}
	}
int main () {
	int n,z;
	cin>>n>>z;
	
	for (int i=1;i<n+1;i++)
	{
		tab[0][i]=i;
		cin>>tab[1][i]>>tab[2][i];
	}
	sortuj (tab,n);
	
	
	int x=0,zz=n;
	for (int i=1;i<n+1;i++)
	{	
	
			if (i==zz && tab[1][i]>=z)
			{
				cout<<"NIE";
				return 0;
			}
		
	
			if (tab[1][i]<z && tab[1][i]!=0)
			{	if (i==zz)
				--zz;
			
				z=z-tab[1][i]+tab[2][i];
				if (tab[0][i]!=0)
				{	
					ch[x]=tab[0][i]+'0';
					x=x+2;
				}
				tab[0][i]=0;
				tab[1][i]=0;
				tab[2][i]=0;
				
				
				i=1;
			}
		
		
	}	
	cout<<"TAK"<<endl;
	for (int i=0;i<x-1;i++)
	cout<<ch[i];

	return 0;
}