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
#include <bits/stdc++.h>
#define pb push_back
#define sz size()
const int N=3000;
const long long INF=10000000000000;


using namespace std;

bool f;
int n;
long long a[N+1],s;
vector <long long> w;

int main() {
	scanf("%d",&n);
	for (int i=1; i<=n; i++) {
		scanf("%lld",&a[i]);
	}
	for (long long i=1; i<=n && !f; i++) {
		s=0;
		for (int j=1; j<=i && !f; j++) {
			if (j<=abs(a[i]%i)) {
				w.pb(a[i]/i+(a[i]>=0?1:-1));
			} else {
				w.pb(a[i]/i);
			}
			s+=w.back();
			if (s>a[j]) {
				f=1;
			}
		}
		w.pb(-INF);
	}
	w.pop_back();
	if (f) {
		printf("NIE\n");
	} else {
		printf("TAK\n");
		printf("%d\n",(int)w.sz);
		for	(auto i: w) {
				printf("%lld ",i);
		}
		printf("\n");
	}
	return 0;
}