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
#include<bits/stdc++.h>
using namespace std;
bool odw[500002],bul;
int n,k,maks,ile,gdzie;
int tab[500002],premin[500002],sufmax[500002];
int main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cin>>n>>k;
	premin[0]=1000000001;
	for(int i=1;i<=n;++i){
		cin>>tab[i];
		premin[i]=min(tab[i],premin[i-1]);
		sufmax[i]=tab[i];
	}
	if(k==2){
		for(int i=n-1;i;--i){
			if(sufmax[i]<sufmax[i+1])sufmax[i]=sufmax[i+1];
		}
		for(int i=1;i<n;++i){
			if(premin[i]>=sufmax[i+1]){
				cout<<"TAK"<<"\n";
				cout<<i;
				return 0;
			}
		}
		cout<<"NIE";
	}
	else if(k==3){
		for(int i=n-1;i;--i){
			if(sufmax[i]<sufmax[i+1])sufmax[i]=sufmax[i+1];
		}
		for(int i=2;i<n;++i){
			if(tab[i]<=premin[i-1]||tab[i]>=sufmax[i+1]){
				cout<<"TAK"<<"\n";
				cout<<i-1<<" "<<i;
				return 0;
			}
		}
		cout<<"NIE";
	}
	else{
		for(int i=1;i<n;++i){
			if(tab[i]>=tab[i+1]){
				bul=1;
				k-=2;
				odw[i]=1;odw[i+1]=1;
				if(i-1){
					--k;
					odw[i-1]=1;
				}
				i=n;
			}
		}
		if(!bul){
			cout<<"NIE";
			return 0;
		}
		--k;
		cout<<"TAK"<<"\n";
		for(int i=1;i<n;++i){
			if(k||odw[i]){
				cout<<i<<" ";
				if(!odw[i]){
					--k;
				}
			}
		}
	}
}