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
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;

class Starcie implements Comparable <Starcie>{
	public int silaPotwora, mocEliksiru, indeks;
	public static int liczba = 0;
	
	public Starcie(int sP, int sM){
		silaPotwora = sP;
		mocEliksiru = sM;
		liczba++;
		indeks = liczba;
	}

	@Override
	public int compareTo(Starcie drugi) {
		return drugi.mocEliksiru - mocEliksiru;
	}
}

public class boh {

	public static void main(String[] args) {
		java.util.Scanner scanner = new java.util.Scanner(System.in);
		int liczbaPotworow = scanner.nextInt(), punktowZycia = scanner.nextInt(); 
		ArrayList <Starcie> starcia = new ArrayList <Starcie> ();
		LinkedList <Starcie> nastepne = new LinkedList <Starcie> ();
		LinkedList <Integer> stoczone = new LinkedList <Integer> ();
		
		for(int i = 0; i < liczbaPotworow; i++)
			starcia.add(new Starcie(scanner.nextInt(), scanner.nextInt()));
		
		scanner.close();
		Collections.sort(starcia);
		
		for(Starcie s : starcia){
			for(Starcie n : nastepne)
				if ( punktowZycia - n.silaPotwora > 0 ){
					stoczone.add(n.indeks);
					punktowZycia -= n.silaPotwora;
					punktowZycia += n.mocEliksiru;
					nastepne.remove(n);
				}
			
			if ( punktowZycia - s.silaPotwora > 0 ){
				stoczone.add(s.indeks);
				punktowZycia -= s.silaPotwora;
				punktowZycia += s.mocEliksiru;
			}
			else
				nastepne.add(s);
		}
		
		if(stoczone.size() == starcia.size())
			System.out.println("TAK");
		else
			System.out.println("NIE");
		
		for(Integer i : stoczone)
			System.out.print(i + " ");
		
	}

}