code:
#include <bits/stdc++.h>
#define N 100005
#define LL long long
using namespace std;
void setIO(string s)
{
string in=s+".in";
freopen(in.c_str(),"r",stdin);
}
struct data
{
LL a,d;
int id;
data(LL a=0,LL d=0,int id=0):a(a),d(d),id(id){}
}a[N],b[N];
bool cmp1(data a,data b)
{
return a.a<b.a;
}
bool cmp2(data a,data b)
{
return a.d>b.d;
}
int main()
{
// setIO("input");
int n,i,j,t1=0,t2=0;
LL z;
scanf("%d%lld",&n,&z);
for(i=1;i<=n;++i)
{
LL x,y;
scanf("%lld%lld",&x,&y);
if(y>=x) a[++t1]=data(x,y,i);
else b[++t2]=data(x,y,i);
}
sort(a+1,a+1+t1,cmp1);
sort(b+1,b+1+t2,cmp2);
for(i=1;i<=t1;++i)
{
if(z<=a[i].a)
{
printf("NIE\n");
return 0;
}
else
{
z+=a[i].d-a[i].a;
}
}
for(i=1;i<=t2;++i)
{
if(z<=b[i].a)
{
printf("NIE\n");
return 0;
}
else
{
z+=b[i].d-b[i].a;
}
}
printf("TAK\n");
for(i=1;i<=t1;++i) printf("%d ",a[i].id);
for(i=1;i<=t2;++i) printf("%d ",b[i].id);
return 0;
}