/* AUTHOR: TUAN ANH - BUI */
// ~~ icebear ~~
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll, int> ii;
typedef pair<int, ii> iii;
template<class X, class Y>
bool minimize(X &x, const Y &y) {
if (x > y) return x = y, true;
return false;
}
template<class X, class Y>
bool maximize(X &x, const Y &y) {
if (x < y) return x = y, true;
return false;
}
#define FOR(i,a,b) for(int i=(a); i<=(b); ++i)
#define FORR(i,a,b) for(int i=(a); i>=(b); --i)
#define REP(i, n) for(int i=0; i<(n); ++i)
#define RED(i, n) for(int i=(n)-1; i>=0; --i)
#define MASK(i) (1LL << (i))
#define BIT(S, i) (((S) >> (i)) & 1)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define all(x) x.begin(), x.end()
#define task "lock"
/* END OF TEMPLATE. ICEBEAR IS REALLY CUTE */
const int MOD = 1e9 + 7;
const int inf = (int)1e9 + 27092008;
const ll INF = (ll)1e18 + 27092008;
const int N = 5e5 + 5;
int n, k, a[N];
ll sum;
vector<vector<ll>> ans;
void init(void) {
cin >> n >> k;
FOR(i, 1, n) cin >> a[i], sum += a[i];
}
void process(void) {
ll T = sum / k;
if (T < *max_element(a + 1, a + n + 1)) return void(cout << "-1");
multiset<ii> s;
FOR(i, 1, n) s.insert(mp(a[i], i));
while(!s.empty()) {
vector<ii> vec;
REP(i, k) {
vec.pb(*--s.end());
s.erase(--s.end());
}
ll x = min(vec.back().first, T - (s.empty() ? 0ll : s.rbegin()->first));
T -= x;
vector<ll> cur(1, x);
for(auto [v, j] : vec) {
cur.push_back(j);
v -= x;
if (v > 0) s.insert(mp(v, j));
}
ans.push_back(cur);
}
cout << ans.size() << '\n';
for(auto S : ans) {
for(ll x : S) cout << x << ' ';
cout << '\n';
}
}
int32_t main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
if (fopen(task".inp", "r")) {
freopen(task".inp", "r", stdin);
freopen(task".out", "w", stdout);
}
int tc = 1;
// cin >> tc;
while(tc--) {
init();
process();
}
return 0;
}
LyogQVVUSE9SOiBUVUFOIEFOSCAtIEJVSSAqLwovLyB+fiBpY2ViZWFyIH5+CiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgcGFpcjxsbCwgaW50PiBpaTsKdHlwZWRlZiBwYWlyPGludCwgaWk+IGlpaTsKCnRlbXBsYXRlPGNsYXNzIFgsIGNsYXNzIFk+CiAgICBib29sIG1pbmltaXplKFggJngsIGNvbnN0IFkgJnkpIHsKICAgICAgICBpZiAoeCA+IHkpIHJldHVybiB4ID0geSwgdHJ1ZTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9Cgp0ZW1wbGF0ZTxjbGFzcyBYLCBjbGFzcyBZPgogICAgYm9vbCBtYXhpbWl6ZShYICZ4LCBjb25zdCBZICZ5KSB7CiAgICAgICAgaWYgKHggPCB5KSByZXR1cm4geCA9IHksIHRydWU7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKI2RlZmluZSBGT1IoaSxhLGIpIGZvcihpbnQgaT0oYSk7IGk8PShiKTsgKytpKQojZGVmaW5lIEZPUlIoaSxhLGIpIGZvcihpbnQgaT0oYSk7IGk+PShiKTsgLS1pKQojZGVmaW5lIFJFUChpLCBuKSBmb3IoaW50IGk9MDsgaTwobik7ICsraSkKI2RlZmluZSBSRUQoaSwgbikgZm9yKGludCBpPShuKS0xOyBpPj0wOyAtLWkpCiNkZWZpbmUgTUFTSyhpKSAoMUxMIDw8IChpKSkKI2RlZmluZSBCSVQoUywgaSkgKCgoUykgPj4gKGkpKSAmIDEpCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBhbGwoeCkgeC5iZWdpbigpLCB4LmVuZCgpCiNkZWZpbmUgdGFzayAibG9jayIKLyogIEVORCBPRiBURU1QTEFURS4gSUNFQkVBUiBJUyBSRUFMTFkgQ1VURSAgKi8KCmNvbnN0IGludCBNT0QgPSAxZTkgKyA3Owpjb25zdCBpbnQgaW5mID0gKGludCkxZTkgKyAyNzA5MjAwODsKY29uc3QgbGwgSU5GICA9IChsbCkxZTE4ICsgMjcwOTIwMDg7CmNvbnN0IGludCBOID0gNWU1ICsgNTsKaW50IG4sIGssIGFbTl07CmxsIHN1bTsKdmVjdG9yPHZlY3RvcjxsbD4+IGFuczsKCnZvaWQgaW5pdCh2b2lkKSB7CiAgICBjaW4gPj4gbiA+PiBrOwogICAgRk9SKGksIDEsIG4pIGNpbiA+PiBhW2ldLCBzdW0gKz0gYVtpXTsKfQoKdm9pZCBwcm9jZXNzKHZvaWQpIHsKICAgIGxsIFQgPSBzdW0gLyBrOwogICAgaWYgKFQgPCAqbWF4X2VsZW1lbnQoYSArIDEsIGEgKyBuICsgMSkpIHJldHVybiB2b2lkKGNvdXQgPDwgIi0xIik7CiAgICBtdWx0aXNldDxpaT4gczsKICAgIEZPUihpLCAxLCBuKSBzLmluc2VydChtcChhW2ldLCBpKSk7CiAgICB3aGlsZSghcy5lbXB0eSgpKSB7CiAgICAgICAgdmVjdG9yPGlpPiB2ZWM7CiAgICAgICAgUkVQKGksIGspIHsKICAgICAgICAgICAgdmVjLnBiKCotLXMuZW5kKCkpOwogICAgICAgICAgICBzLmVyYXNlKC0tcy5lbmQoKSk7CiAgICAgICAgfQoKICAgICAgICBsbCB4ID0gbWluKHZlYy5iYWNrKCkuZmlyc3QsIFQgLSAocy5lbXB0eSgpID8gMGxsIDogcy5yYmVnaW4oKS0+Zmlyc3QpKTsKICAgICAgICBUIC09IHg7CiAgICAgICAgdmVjdG9yPGxsPiBjdXIoMSwgeCk7CiAgICAgICAgZm9yKGF1dG8gW3YsIGpdIDogdmVjKSB7CiAgICAgICAgICAgIGN1ci5wdXNoX2JhY2soaik7CiAgICAgICAgICAgIHYgLT0geDsKICAgICAgICAgICAgaWYgKHYgPiAwKSBzLmluc2VydChtcCh2LCBqKSk7CiAgICAgICAgfQogICAgICAgIGFucy5wdXNoX2JhY2soY3VyKTsKICAgIH0KICAgIGNvdXQgPDwgYW5zLnNpemUoKSA8PCAnXG4nOwogICAgZm9yKGF1dG8gUyA6IGFucykgewogICAgICAgIGZvcihsbCB4IDogUykgY291dCA8PCB4IDw8ICcgJzsKICAgICAgICBjb3V0IDw8ICdcbic7CiAgICB9Cn0KCmludDMyX3QgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIGlmIChmb3Blbih0YXNrIi5pbnAiLCAiciIpKSB7CiAgICAgICAgZnJlb3Blbih0YXNrIi5pbnAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKHRhc2siLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KICAgIGludCB0YyA9IDE7Ci8vICAgIGNpbiA+PiB0YzsKICAgIHdoaWxlKHRjLS0pIHsKICAgICAgICBpbml0KCk7CiAgICAgICAgcHJvY2VzcygpOwogICAgfQogICAgcmV0dXJuIDA7Cn0KCg==