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
#include <stdio.h>
#include <stdlib.h>

int d[100000],a[100000],k[100000],l[100000];

int c(const void *a, const void *b)
{
  return k[*(int*)a]-k[*(int*)b];
}

int main()
{
  int n,z,i;
  scanf("%d%d",&n,&z);
  for (i=0;i<n;i++)
  {
    scanf("%d%d",&d[i],&a[i]);
    l[i]=i;
    k[i]=d[i]<a[i]?d[i]:1000000-a[i];
  }
  qsort(l,n,sizeof(*l),c);
  for (i=0;i<n;i++)
  {
    z-=d[l[i]];
    if (z<=0)
    {
      puts("NIE");
      exit(0);
    }
    z+=a[l[i]];
  }
  puts("TAK");
  for (i=0;i<n;i++) printf("%d%c",l[i]+1,i+1<n?' ':'\n');
  return 0;
}