#include<bits/stdc++.h>
using namespace std;
const int MAX_N = 1e6+5;
typedef long long ll;
typedef pair<ll, int> PLI;
int n;
ll k;
vector<PLI> ans[MAX_N];
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
set<PLI> secik;
ll suma = 0LL;
cin >> n >> k;
for (int i = 0; i < n; i++) {
ll a;
cin >> a;
suma += a;
secik.insert(make_pair(a, i + 1));
}
if (suma > k*n) {
cout << "NIE\n";
return 0;
}
int nr_pojemnika = 1;
while (!secik.empty()) {
PLI mini = *secik.begin();
if (mini.first > k) {
break;
}
PLI maxi = *prev(secik.end());
if (maxi.first <= k) {
break;
}
secik.erase(secik.begin());
secik.erase(prev(secik.end()));
ll free_space = k - mini.first;
ll maxi_to_be_used = maxi.first - free_space;
secik.insert(make_pair(maxi_to_be_used, maxi.second));
ans[nr_pojemnika].push_back(mini);
ans[nr_pojemnika].push_back(make_pair(free_space, maxi.second));
nr_pojemnika++;
}
while (!secik.empty()) {
PLI mini = *secik.begin();
ans[nr_pojemnika].push_back(mini);
secik.erase(secik.begin());
nr_pojemnika++;
}
cout << "TAK\n";
for (int i = 1; i <= n; i++) {
cout << ans[i].size() << ' ';
for (auto p: ans[i]) {
cout << p.second << ' ' << p.first << ' ';
}
cout << '\n';
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBNQVhfTiA9IDFlNis1OwoKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgcGFpcjxsbCwgaW50PiBQTEk7CgppbnQgbjsKbGwgazsKCnZlY3RvcjxQTEk+IGFuc1tNQVhfTl07CgppbnQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwoKICAgIHNldDxQTEk+IHNlY2lrOwogICAgbGwgc3VtYSA9IDBMTDsKCiAgICBjaW4gPj4gbiA+PiBrOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBsbCBhOwogICAgICAgIGNpbiA+PiBhOwogICAgICAgIHN1bWEgKz0gYTsKICAgICAgICBzZWNpay5pbnNlcnQobWFrZV9wYWlyKGEsIGkgKyAxKSk7CiAgICB9CgoJaWYgKHN1bWEgPiBrKm4pIHsKICAgICAgICBjb3V0IDw8ICJOSUVcbiI7CiAgICAgICAgcmV0dXJuIDA7Cgl9CgoJaW50IG5yX3BvamVtbmlrYSA9IDE7CgoJd2hpbGUgKCFzZWNpay5lbXB0eSgpKSB7CiAgICAgICAgUExJIG1pbmkgPSAqc2VjaWsuYmVnaW4oKTsKCiAgICAgICAgaWYgKG1pbmkuZmlyc3QgPiBrKSB7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgUExJIG1heGkgPSAqcHJldihzZWNpay5lbmQoKSk7CgogICAgICAgIGlmIChtYXhpLmZpcnN0IDw9IGspIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoKICAgICAgICBzZWNpay5lcmFzZShzZWNpay5iZWdpbigpKTsKICAgICAgICBzZWNpay5lcmFzZShwcmV2KHNlY2lrLmVuZCgpKSk7CgogICAgICAgIGxsIGZyZWVfc3BhY2UgPSBrIC0gbWluaS5maXJzdDsKICAgICAgICBsbCBtYXhpX3RvX2JlX3VzZWQgPSBtYXhpLmZpcnN0IC0gZnJlZV9zcGFjZTsKICAgICAgICBzZWNpay5pbnNlcnQobWFrZV9wYWlyKG1heGlfdG9fYmVfdXNlZCwgbWF4aS5zZWNvbmQpKTsKCiAgICAgICAgYW5zW25yX3BvamVtbmlrYV0ucHVzaF9iYWNrKG1pbmkpOwogICAgICAgIGFuc1tucl9wb2plbW5pa2FdLnB1c2hfYmFjayhtYWtlX3BhaXIoZnJlZV9zcGFjZSwgbWF4aS5zZWNvbmQpKTsKCiAgICAgICAgbnJfcG9qZW1uaWthKys7Cgl9CgoJd2hpbGUgKCFzZWNpay5lbXB0eSgpKSB7CiAgICAgICAgUExJIG1pbmkgPSAqc2VjaWsuYmVnaW4oKTsKICAgICAgICBhbnNbbnJfcG9qZW1uaWthXS5wdXNoX2JhY2sobWluaSk7CiAgICAgICAgc2VjaWsuZXJhc2Uoc2VjaWsuYmVnaW4oKSk7CiAgICAgICAgbnJfcG9qZW1uaWthKys7Cgl9CgoJY291dCA8PCAiVEFLXG4iOwoJZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgY291dCA8PCBhbnNbaV0uc2l6ZSgpIDw8ICcgJzsKCiAgICAgICAgZm9yIChhdXRvIHA6IGFuc1tpXSkgewogICAgICAgICAgICBjb3V0IDw8IHAuc2Vjb25kIDw8ICcgJyA8PCBwLmZpcnN0IDw8ICcgJzsKICAgICAgICB9CiAgICAgICAgY291dCA8PCAnXG4nOwoJfQoKCXJldHVybiAwOwp9Cg==