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 <bits/stdc++.h>
#define dbg(...) fprintf(stderr, __VA_ARGS__)

using namespace std;

int main() {
	int n, k;
	scanf("%d %d", &n, &k);

	int t[n];
	for (int i=0; i<n; i++) scanf("%d", &t[i]);

	if (k <= 1) {
		puts("NIE");
	} else if (k == 2) {
		int mn[n], mx[n];
		mn[0] = t[0];
		for (int i=1; i<n; i++) mn[i] = min(mn[i-1], t[i]);

		mx[n-1] = t[n-1];
		for (int i=n-2; i>=0; i--) mx[i] = max(mx[i+1], t[i]);

		for (int i=1; i<n; i++) {
			if (mn[i-1]>=mx[i]) {
				puts("TAK");
				printf("%d\n", i);
				return 0;
			}
		}

		puts("NIE");
	} else if (k == 3) {
		int mn = t[0], mx = t[0];
		for (int i=0; i<n; i++) {
			mn = min(mn, t[i]);
			mx = max(mx, t[i]);
		}
		//dbg("[mn=%d, mx=%d]\n", mn, mx);

		if (t[0] == mn && t[1] == mn) {
			puts("TAK");
			printf("1 2\n");
			return 0;
		}

		if (t[n-2] == mx && t[n-1] == mx) {
			puts("TAK");
			printf("%d %d\n", n-1, n);
			return 0;
		}

		for (int i=1; i<n; i++) {
			if (t[i] == mn) {
				puts("TAK");
				printf("%d %d\n", i, i+1);
				return 0;
			}
		}

		if (t[0] == mx) {
			puts("TAK");
			printf("1 2\n");
			return 0;
		}

		for (int i=1; i<n-1; i++) {
			if (t[i] == mx) {
				puts("TAK");
				printf("%d %d\n", i, i+1);
				return 0;
			}
		}

		puts("NIE");
	} else {
		if (t[0] >= t[1]) {
			puts("TAK");
			for (int i=1; i<k; i++) printf("%d ", i);
			printf("\n");
			return 0;
		}

		for (int i=2; i<n-1; i++) {
			if (t[i-1] >= t[i]) {
				puts("TAK");
				deque <int> q;
				q.push_back(i-1); q.push_back(i); q.push_back(i+1);
				for (int i=0,j=1; i<k-4; i++,j++) {
					if (j < q.front()) {
						q.push_front(j);
					} else if (j > q.back()) {
						q.push_back(j);
					} else {
						i--;
					}
				}
				for (int i: q) {
					printf("%d ", i);
				}
				printf("\n");
				return 0;
			}
		}

		if (t[n-2] >= t[n-1]) {
			puts("TAK");
			for (int i=n-k+1; i<n; i++) printf("%d ", i);
			printf("\n");
			return 0;
		}

		puts("NIE");
	}

	return 0;
}