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
#include <cstdio>     
#include <algorithm>

int main(){
	long long int k;
	int n;
	scanf("%d %lld", &n, &k);
	int t[n];
	for(int i=0; i <n; ++i){
		t[i]=i+1;
	}
	long long int tmp=0;
	do {
		long long int sum1=0;
		for(int i=0; i <n; ++i){
			for(int q=i+1; q < n; ++q){
				if(t[q]<t[i]){
					sum1+=1;
				}
			}
		}
		long long int sum2=0;
		for(int i=n-1; i >=0; --i){
			for(int q=i-1; q >= 0; --q){
				if(t[q]<t[i]){
					sum2+=1;
				}
			}
		}
    	if(sum1==sum2){
    		tmp++;
		}
		if(tmp==k) break;
  	} while ( std::next_permutation(t,t+n));
  	if(tmp==k){
  		printf("TAK\n");
  			for(int i=0; i <n; ++i){
				printf("%d ", t[i]);
			}
	  }else{
		printf("NIE\n");	
	}
}