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
126
#include<iostream>
#include<cstdio>
using namespace std;
inline int read()
{
	int n=0,f=1,ch=getchar();
	while(ch<'0'||ch>'9')
	{
		if(ch=='-')f=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9')
	{
		n=n*10+ch-'0';
		ch=getchar();
	}
	return n*f;
}
int qz[500005],hz[500005];
int a[500005];
bool vis[500005];
int main()
{
	int n,k;
	n=read();
	k=read();
	for(int i=1;i<=n;i++)a[i]=read();
	qz[0]=2000000000;
	for(int i=1;i<=n;i++)qz[i]=min(qz[i-1],a[i]);
	for(int i=n;i>=1;i--)hz[i]=max(hz[i+1],a[i]);
	if(k==2)
	{
		for(int i=1;i<=n-1;i++)
		{
			if(qz[i]>=hz[i+1])
			{
				printf("TAK\n");
				printf("%d\n",i);
				return 0; 
			}
		}
		printf("NIE\n");
		return 0;
	}
	if(k==3)
	{
		int minn,maxn,minp,maxp;
		minn=2000000000;
		minp=0;
		for(int i=n;i>=1;i--)
		{
			if(a[i]<minn)
			{
				minn=a[i];
				minp=i;
			}
		}
		maxn=0;
		maxp=0;
		for(int i=1;i<=n;i++)
		{
			if(a[i]>maxn)
			{
				maxn=a[i];
				maxp=i;
			}
		}
		//printf("%d %d\n",minp,maxp);
		if(minp!=1)
		{
			if(minp==n)
			{
				printf("TAK\n");
				printf("1 %d\n",n-1);
				return 0;
			}
			printf("TAK\n");
			printf("%d %d\n",minp-1,minp);
			return 0; 
		}
		if(maxp!=n)
		{
			if(maxp==1)
			{
				printf("TAK\n");
				printf("1 %d\n",n-1);
				return 0;
			}
			printf("TAK\n");
			printf("%d %d\n",maxp-1,maxp);
			return 0;
		}
		printf("NIE\n");
		return 0;
	}
	bool flag=false;
	for(int i=1;i<=n-1;i++)
	{
		if(a[i]>=a[i+1])
		{
			vis[i-1]=true;
			vis[i]=true;
			vis[i+1]=true;
			flag=true;
			break;
		}
	}
	if(flag==false)
	{
		printf("NIE\n");
		return 0;
	}
	k--;
	for(int i=1;i<=n-1;i++)if(vis[i]==true)k--;
	for(int i=1;i<=n-1;i++)
	{
		if(vis[i]==false&&k>0)
		{
			k--;
			vis[i]=true;
		}
	}
	printf("TAK\n");
	for(int i=1;i<=n-1;i++)if(vis[i]==true)printf("%d ",i);
	return 0;
}