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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#include <iostream>
using namespace std;
void quickmal(int d1[], int d2[], int d3[], int d4[], int l, int p)
{
    int i, j, piwot1, piwot2, piwot3, piwot4;
    i=(l+p)/2;
    piwot1=d1[i];
    piwot2=d2[i];
    piwot3=d3[i];
    piwot4=d4[i];
    d1[i]=d1[p];
    d2[i]=d2[p];
    d3[i]=d3[p];
    d4[i]=d4[p];
    for (j=i=l; i<p; i++)
    {
        if (d1[i] > piwot1)
        {
            swap(d1[i], d1[j]);
            swap(d2[i], d2[j]);
            swap(d3[i], d3[j]);
            swap(d4[i], d4[j]);
            j++;
        }
    }
    d1[p]=d1[j];
    d2[p]=d2[j];
    d3[p]=d3[j];
    d4[p]=d4[j];
    d1[j]=piwot1;
    d2[j]=piwot2;
    d3[j]=piwot3;
    d4[j]=piwot4;
    if (l<j-1) quickmal(d1, d2, d3, d4, l, j-1);
    if (j+1<p) quickmal(d1, d2, d3, d4, j+1, p);
}
void quickros(int d1[], int d2[], int d3[], int d4[], int l, int p)
{
    int i, j, piwot1, piwot2, piwot3, piwot4;
    i=(l+p)/2;
    piwot1=d1[i];
    piwot2=d2[i];
    piwot3=d3[i];
    piwot4=d4[i];
    d1[i]=d1[p];
    d2[i]=d2[p];
    d3[i]=d3[p];
    d4[i]=d4[p];
    for (j=i=l; i<p; i++)
    {
        if (d1[i] < piwot1)
        {
            swap(d1[i], d1[j]);
            swap(d2[i], d2[j]);
            swap(d3[i], d3[j]);
            swap(d4[i], d4[j]);
            j++;
        }
    }
    d1[p]=d1[j];
    d2[p]=d2[j];
    d3[p]=d3[j];
    d4[p]=d4[j];
    d1[j]=piwot1;
    d2[j]=piwot2;
    d3[j]=piwot3;
    d4[j]=piwot4;
    if (l<j-1) quickros(d1, d2, d3, d4, l, j-1);
    if (j+1<p) quickros(d1, d2, d3, d4, j+1, p);
}
int main()
{
    ios_base::sync_with_stdio(0);

    int n, z;
    cin>>n>>z;
    int d1[n], d2[n], d3[n], d4[n];
    for (int i=0; i<n; i++)
    {
        d1[i]=i+1;
        cin>>d2[i]>>d3[i];
        d4[i]=d3[i]-d2[i];
    }
    quickmal(d4, d1, d2, d3, 0, n-1);
    int lim=0;
    for (int i=0; i<n; i++)
    {
        if (d4[i]<=0)
        {
            lim=i;
            break;
        }
    }
    quickros(d2, d1, d3, d4, 0, lim-1);
    for (int i=0; i<lim; i++)
    {
        ///z=z+d4[i];
        z=z-d2[i];
        if (z<=0)
        {
            cout<<"NIE";
            return 0;
        }
        z=z+d3[i];
    }
    quickmal(d2, d1, d3, d4, lim, n-1);
    for (int i=lim; i<n; i++)
    {
        ///z=z+d4[i];
        z=z-d2[i];
        if (z<=0)
        {
            cout<<"NIE";
            return 0;
        }
        z=z+d3[i];
    }
    cout<<"TAK"<<endl;
    for (int i=0; i<n; i++)
    {
        cout<<d1[i]<<" ";
    }

    return 0;
}