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
#include<stdio.h>
#include<algorithm>
#include<cmath>
using namespace std;


struct enemy {
    int d;
    int a;
    int id;
    int sign;
};

const bool cmp(const enemy &x, const enemy &y) {
    if(x.sign == y.sign) {
        if(x.sign < 0)
            return x.a > y.a;
        else
            return x.d < y.d;
    }

    return x.sign > y.sign;
}

int n,d,a;
long long int z;

enemy T[100100];

int main() {
    scanf("%d %lld", &n,&z);

    for(int i=0;i<n;i++) {
        scanf("%d %d", &T[i].d, &T[i].a);
        T[i].sign = (T[i].a - T[i].d > 0) - (T[i].a - T[i].d < 0);
        T[i].id = i + 1;
    }

    sort(T, T+n, cmp);

/*    for(int i=0;i<n;i++) {
        printf("%d %d %d %d\n", T[i].id, T[i].d, T[i].a, T[i].sign);   
    }*/

    for(int i=0;i<n;i++) {
        if(z <= T[i].d) {
            printf("NIE\n");
            return 0;
        }
        z += (T[i].a - T[i].d);
    }

    printf("TAK\n");
    for(int i=0;i<n;i++) {
        printf("%d ", T[i].id);
    }
    printf("\n");
    return 0;
}