#include <bits/stdc++.h>
using namespace std;
const int MaxN=2e5;
int add[MaxN+1]={};
int N;//start end value
int M;
long ans=0;
int main() {
cin>>N>>M;
int work[N]={};
int ability[N]={};
for(int n=0;n<M;n++){
int v,s,e;
cin>>s>>e>>v;
add[s]+=v;
add[e+1]-=v;
}
int now=0;
for(int n=1;n<=N;n++){
now+=add[n];
work[n-1]=now;
}
for(int n=0;n<N;n++)
cin>>ability[n];
sort(work,work+N);
sort(ability,ability+N);
for(int n=0;n<N;n++){
ans+=work[N-1-n]*ability[n];
}
cout<<ans<<endl;
for(int n=0;n<N;n++){
cout<<work[n]<<" ";
}
cout<<endl;
for(int n=0;n<N;n++){
cout<<ability[n]<<" ";
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTWF4Tj0yZTU7CmludCBhZGRbTWF4TisxXT17fTsKaW50IE47Ly9zdGFydCBlbmQgdmFsdWUKaW50IE07CmxvbmcgYW5zPTA7CmludCBtYWluKCkgewoJY2luPj5OPj5NOwoJaW50IHdvcmtbTl09e307CglpbnQgYWJpbGl0eVtOXT17fTsKCWZvcihpbnQgbj0wO248TTtuKyspewoJCWludCB2LHMsZTsKCQljaW4+PnM+PmU+PnY7CgkJYWRkW3NdKz12OwoJCWFkZFtlKzFdLT12OwoJfQoJaW50IG5vdz0wOwoJZm9yKGludCBuPTE7bjw9TjtuKyspewoJCW5vdys9YWRkW25dOwoJCXdvcmtbbi0xXT1ub3c7Cgl9Cglmb3IoaW50IG49MDtuPE47bisrKQoJICBjaW4+PmFiaWxpdHlbbl07Cglzb3J0KHdvcmssd29yaytOKTsKCXNvcnQoYWJpbGl0eSxhYmlsaXR5K04pOwoJZm9yKGludCBuPTA7bjxOO24rKyl7CgkJYW5zKz13b3JrW04tMS1uXSphYmlsaXR5W25dOwoJfQoJY291dDw8YW5zPDxlbmRsOwoJZm9yKGludCBuPTA7bjxOO24rKyl7CgkJY291dDw8d29ya1tuXTw8IiAiOwoJfQoJY291dDw8ZW5kbDsKCWZvcihpbnQgbj0wO248TjtuKyspewoJCWNvdXQ8PGFiaWxpdHlbbl08PCIgIjsKCX0KCQp9Cg==