#include<iostream>
using namespace std;
int a[1000000];
int main(){
int t, i = -1, j;
int n, m;
cin>>t;
while(t--){
cin>>n>>m;
// for(int k = 1; k <= n; a[k++] = k);
// for(int k = 1; k <= n; cout<<a[k++]<<" ");
// cout<<endl;
int w[m];
int x[m], y[m], z[m];
while(++i < m){
cin>>w[i]>>x[i]>>y[i]>>z[i];
if(w[i] == 2) z[i] = z[i] * (-1);
}
int i, j;
i = -1;
while(++i < m){
j = -1;
a[x[i]] += x[i];
while(++j < m ){
if((x[i] > x[j] && x[i] < y[j])||(i==j))
a[x[i]] += z[j];
if((y[i] > x[j] && y[i] < y[j])||(i==j))
a[y[i]] += z[j];
}
x[i] = y[i] = 0;
for(int k = 1; k <= n; cout<<a[k++]<<" ");
cout<<"#"<<endl;
}
int max = n, min = 1;
for(int i = 0; i < m; ++i){
if(a[x[i]] + x[i] > max)
max = a[x[i]] + x[i];
if(a[x[i]] + x[i] < min)
min = a[x[i]] + x[i];
if(a[y[i]] + y[i]> max)
max = a[y[i]] + y[i];
if(a[y[i]] + y[i]< min)
min = a[y[i]] + y[i];
}
for(int k = 1; k <= n; cout<<a[k++]+k<<" ");
cout<<endl;
cout<<max-min<<endl;
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBhWzEwMDAwMDBdOwppbnQgbWFpbigpewogICAgaW50IHQsIGkgPSAtMSwgajsKICAgIGludCBuLCBtOwogICAgY2luPj50OwogICAgd2hpbGUodC0tKXsKICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgIGNpbj4+bj4+bTsKLy8gICAgICAgICAgICAgICBmb3IoaW50IGsgPSAxOyBrIDw9IG47IGFbaysrXSA9IGspOwovLyAgICAgICAgICAgICAgIGZvcihpbnQgayA9IDE7IGsgPD0gbjsgY291dDw8YVtrKytdPDwiICIpOwovLyAgICAgICAgICAgICAgIGNvdXQ8PGVuZGw7CiAgICAgICAgICAgICAgIGludCB3W21dOwogICAgICAgICAgICAgICBpbnQgeFttXSwgeVttXSwgelttXTsKICAgICAgICAgICAgICAgd2hpbGUoKytpIDwgbSl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgY2luPj53W2ldPj54W2ldPj55W2ldPj56W2ldOwogICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHdbaV0gPT0gMikgeltpXSA9IHpbaV0gKiAoLTEpOwogICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBpbnQgaSwgajsKICAgICBpID0gLTE7CiAgICAgd2hpbGUoKytpIDwgbSl7CiAgICAgICAgICAgICAgaiA9IC0xOwoJCWFbeFtpXV0gKz0geFtpXTsKICAgICAgICAgICAgICB3aGlsZSgrK2ogPCBtICl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCh4W2ldID4geFtqXSAmJiB4W2ldIDwgeVtqXSl8fChpPT1qKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVt4W2ldXSArPSAgeltqXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCh5W2ldID4geFtqXSAmJiB5W2ldIDwgeVtqXSl8fChpPT1qKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVt5W2ldXSArPSAgeltqXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICB9Cgl4W2ldID0geVtpXSA9IDA7Cglmb3IoaW50IGsgPSAxOyBrIDw9IG47IGNvdXQ8PGFbaysrXTw8IiAiKTsKICAgICAgICAgICAgICAgY291dDw8IiMiPDxlbmRsOwoKICAgICB9CiAgICAgaW50IG1heCA9IG4sIG1pbiA9IDE7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbTsgKytpKXsKICAgICAgICAgIGlmKGFbeFtpXV0gKyB4W2ldID4gbWF4KQogICAgICAgICAgICAgICAgICAgICBtYXggPSBhW3hbaV1dICsgeFtpXTsKICAgICAgICAgIGlmKGFbeFtpXV0gKyB4W2ldIDwgbWluKQogICAgICAgICAgICAgICAgICAgICBtaW4gPSBhW3hbaV1dICsgeFtpXTsKICAgICAgICAgIGlmKGFbeVtpXV0gKyB5W2ldPiBtYXgpCiAgICAgICAgICAgICAgICAgICAgbWF4ID0gYVt5W2ldXSArIHlbaV07CiAgICAgICAgICBpZihhW3lbaV1dICsgeVtpXTwgbWluKQogICAgICAgICAgICAgICAgICAgICBtaW4gPSBhW3lbaV1dICsgeVtpXTsKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBmb3IoaW50IGsgPSAxOyBrIDw9IG47IGNvdXQ8PGFbaysrXStrPDwiICIpOwogICAgICAgICAgICAgICBjb3V0PDxlbmRsOwogICAgY291dDw8bWF4LW1pbjw8ZW5kbDsKfQogICByZXR1cm4gMDsKfQogICAgICAgICAgICAgIAogICAgICAgICAgICAgICAKIAo=