// code by Deepak Verma
#include <bits/stdc++.h>
#define endl '\n'
#define fast cin.tie(0);cout.tie(0);ios_base::sync_with_stdio(0)
using namespace std;
const int mod = 1000*1000*1000+7 ;
#define rep(i,l,r) for(int i=l;i<r;i++)
#define repi(i,l,r) for(int i=l;i<=r;i++)
typedef long long ll ;
typedef unsigned long long ull ;
typedef pair<int,int> ii ;
typedef vector<int> vi ;
typedef vector<char> vc ;
typedef vector<vi> vvi ;
typedef vector<ii> vii ;
typedef vector<char> vc ;
typedef set<int> si ;
typedef set<ll> sl ;
typedef map<int,int> mii;
typedef map<char,int> mci;
struct newd {
ll di,fi,bi ;
int num ;
};
void solve1() {
ll n,m ;
cin >> n >> m ;
int arrm[m+1] {0} ;
repi(i,1,m) cin >> arrm[i] ; // for m flavours
newd itm ;
vector<newd> vt ;
ll tot = 0 ;
int ice[n+1] = {0} ; // for n persons // the flavour number
// for(auto it:arrm) cout << it << ' ' ;
// cout << endl ;
rep(i,0,n) {
cin >> itm.di >> itm.fi >> itm.bi ;
itm.num = i+1 ;
if(arrm[itm.di]>0) {
tot += itm.fi ;
arrm[itm.di]-- ;
ice[i+1] = itm.di ;
}
else {
vt.push_back(itm) ;
}
}
// for(auto it:arrm) cout << it << ' ' ;
// cout << endl ;
vi lefts ;
if(!vt.empty()) {
for(auto it:vt) {
tot += it.bi ;
}
int i = 1 ;
int j = 0 ;
int size = vt.size() ;
while(j<size) {
ll lf = arrm[i] ;
if(lf>0) {
ll pos = vt[j].num ;
ll whi = i ;
ice[pos] = whi ;
j++ ;
}
else {
i++ ;
}
}
}
cout << tot << endl ;
repi(i,1,n) cout << ice[i] << ' ' ;
cout << endl ;
}
int main() {
fast;
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
ll t ;
cin >> t ;
while(t--) {
solve1() ;
}
}
Ly8gY29kZSBieSBEZWVwYWsgVmVybWEKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgZW5kbCAnXG4nCiNkZWZpbmUgZmFzdCBjaW4udGllKDApO2NvdXQudGllKDApO2lvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCkKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgaW50IG1vZCA9IDEwMDAqMTAwMCoxMDAwKzcgOwojZGVmaW5lIHJlcChpLGwscikgZm9yKGludCBpPWw7aTxyO2krKykKI2RlZmluZSByZXBpKGksbCxyKSBmb3IoaW50IGk9bDtpPD1yO2krKykKdHlwZWRlZiBsb25nIGxvbmcgbGwgOwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1bGwgOwp0eXBlZGVmIHBhaXI8aW50LGludD4gaWkgOwp0eXBlZGVmIHZlY3RvcjxpbnQ+IHZpIDsKdHlwZWRlZiB2ZWN0b3I8Y2hhcj4gdmMgOwp0eXBlZGVmIHZlY3Rvcjx2aT4gdnZpIDsKdHlwZWRlZiB2ZWN0b3I8aWk+IHZpaSA7CnR5cGVkZWYgdmVjdG9yPGNoYXI+IHZjIDsKdHlwZWRlZiBzZXQ8aW50PiBzaSA7CnR5cGVkZWYgc2V0PGxsPiBzbCA7CnR5cGVkZWYgbWFwPGludCxpbnQ+IG1paTsKdHlwZWRlZiBtYXA8Y2hhcixpbnQ+IG1jaTsKCnN0cnVjdCBuZXdkIHsKICAgIGxsIGRpLGZpLGJpIDsKICAgIGludCBudW0gOwp9OwoKdm9pZCBzb2x2ZTEoKSB7CiAgICBsbCBuLG0gOwogICAgY2luID4+IG4gPj4gbSA7CiAgICBpbnQgYXJybVttKzFdIHswfSA7CiAgICByZXBpKGksMSxtKSBjaW4gPj4gYXJybVtpXSA7ICAgIC8vIGZvciBtIGZsYXZvdXJzCiAgICBuZXdkIGl0bSA7CiAgICB2ZWN0b3I8bmV3ZD4gdnQgOwogICAgbGwgdG90ID0gMCAgOwogICAgaW50IGljZVtuKzFdID0gezB9IDsgICAgLy8gZm9yIG4gcGVyc29ucyAvLyB0aGUgZmxhdm91ciBudW1iZXIgCgogICAgLy8gZm9yKGF1dG8gaXQ6YXJybSkgY291dCA8PCBpdCA8PCAnICcgOwogICAgLy8gY291dCA8PCBlbmRsIDsKICAgIHJlcChpLDAsbikgewogICAgICAgIGNpbiA+PiBpdG0uZGkgPj4gaXRtLmZpID4+IGl0bS5iaSA7CiAgICAgICAgaXRtLm51bSA9IGkrMSA7CgogICAgICAgIGlmKGFycm1baXRtLmRpXT4wKSB7CiAgICAgICAgICAgIHRvdCArPSBpdG0uZmkgOwogICAgICAgICAgICBhcnJtW2l0bS5kaV0tLSA7CiAgICAgICAgICAgIGljZVtpKzFdID0gaXRtLmRpIDsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHZ0LnB1c2hfYmFjayhpdG0pIDsKICAgICAgICB9CiAgICB9CiAgICAvLyBmb3IoYXV0byBpdDphcnJtKSBjb3V0IDw8IGl0IDw8ICcgJyA7CiAgICAvLyBjb3V0IDw8IGVuZGwgOwoKICAgIHZpIGxlZnRzIDsKICAgIGlmKCF2dC5lbXB0eSgpKSB7CiAgICAgICAgZm9yKGF1dG8gaXQ6dnQpIHsKICAgICAgICAgICAgdG90ICs9IGl0LmJpIDsKICAgICAgICB9CiAgICAgICAgaW50IGkgPSAxIDsKICAgICAgICBpbnQgaiA9IDAgOwogICAgICAgIGludCBzaXplID0gdnQuc2l6ZSgpIDsKICAgICAgICB3aGlsZShqPHNpemUpIHsKICAgICAgICAgICAgbGwgbGYgPSBhcnJtW2ldIDsKICAgICAgICAgICAgaWYobGY+MCkgewogICAgICAgICAgICAgICAgbGwgcG9zID0gdnRbal0ubnVtIDsKICAgICAgICAgICAgICAgIGxsIHdoaSA9IGkgOwogICAgICAgICAgICAgICAgaWNlW3Bvc10gPSB3aGkgOwogICAgICAgICAgICAgICAgaisrIDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGkrKyA7CiAgICAgICAgICAgIH0KCiAgICAgICAgfQogICAgfQogICAgY291dCA8PCB0b3QgPDwgZW5kbCA7CiAgICByZXBpKGksMSxuKSBjb3V0IDw8IGljZVtpXSA8PCAnICcgOwogICAgY291dCA8PCBlbmRsIDsKfQoKaW50IG1haW4oKSB7CiAgICBmYXN0OwojaWZuZGVmIE9OTElORV9KVURHRQogICAgZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CiAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwojZW5kaWYKCiAgICBsbCB0IDsKICAgIGNpbiA+PiB0IDsKICAgIHdoaWxlKHQtLSkgewogICAgICAgIHNvbHZlMSgpIDsKICAgIH0KCn0K