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
#include<iostream>
#include <vector>
#include <set>

using namespace std;

int n, k, liczba, mel, przed, po;

vector<int> pli;
// multiset<int> lewy, prawy	;
multiset<int> prawy;


void druk(int mel) {
	if (mel==n) {
		for (int i=1; i<=k-2; i++)
			cout << i << " ";
		cout << mel-1 << "\n";
	} else if (mel==n-1) {
		for (int i=1; i<=k-3; i++)
			cout << i << " ";
		cout << mel-1 << " " << mel << "\n";
	} else {
		if (k < mel - 2)
			przed = k-3;
		else 
			przed = mel - 2;
		for (int i=1; i<=przed; i++)
			cout << i << " ";
		cout << mel-1 << " " << mel << " ";
		for (int i=1; i<=k-przed-3; i++)
			cout << i+mel << " ";
		cout << "\n";
	}
}

void k2() {
//	lewy.clear();
//	lewy.insert(pli[1]);
	int minl = pli[1];
	prawy.clear();
	for (int i=2; i< pli.size(); i++) {
		prawy.insert(pli[i]);
	}
	int i = 2;
//	while ( (i<=n) && (*prawy.rbegin() > *lewy.begin()) ) {
	while ( (i<=n) && (*prawy.rbegin() > minl) ) {
		prawy.erase(prawy.find(pli[i]));
//		lewy.insert(pli[i]);
		if (pli[i] < minl)
			minl = pli[i];
		i++;
	}
	if (i>n) 
		cout << "NIE\n";
	else {
		cout << "TAK\n";
		cout << i-1 << "\n";
	}
}

void k3() {
//	lewy.clear();
//	lewy.insert(pli[1]);
	int minl = pli[1];
	prawy.clear();
	for (int i=3; i< pli.size(); i++) {
		prawy.insert(pli[i]);
	}
	int i = 2;
//	while ( (i<n) && (*prawy.rbegin() > pli[i] && pli[i] > *lewy.begin()) ) {
	while ( (i<n) && (*prawy.rbegin() > pli[i] && pli[i] > minl) ) {
		prawy.erase(prawy.find(pli[i+1]));
//		lewy.insert(pli[i]);
		if (pli[i] < minl)
			minl = pli[i];
		i++;
	}
	if (i>=n) 
		cout << "NIE\n";
	else {
		cout << "TAK\n";
		cout << i-1 << " " << i << "\n";
	}
}

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

	cin>>n;
	cin>>k;
	bool sorted = true;
	pli.push_back(0);
	for(int i=1; i<=n; i++) {
		cin>>liczba;
		if (sorted && (liczba <= pli[i-1])) {
			sorted = false;
			mel = i;
		}
		pli.push_back(liczba);
	}
	if (k>=4) {
		if (sorted)
			cout << "NIE\n";
		else {
			cout << "TAK\n";
			druk(mel);
		}
	} else if (k==2) {
		k2();
	} else if (k==3) {
		k3();
	}
}