#include<bits/stdc++.h>
using namespace std;
#define int long long
typedef pair<int, int> PIR;
const int N=1000010,mod=1e9+7,M=-2000000000000000000;
int a[N],b[N];
vector<PIR> A[N],B[N];
void slove()
{
int n,m;
cin>>n>>m;
int flo=0;
for(int i=1;i<=n;i++)
B[i].clear(),A[i].clear(),b[i]=0;
for(int i=1;i<=m;i++)
{
int x,y,k,p;
cin>>x>>y>>k>>p;
int sum=n*(n+1)/2-(n+(n-x)*(x-1));
if(k==n*(n+1)/2)
{
//cout<<y<<'\n';
int l=max(0ll,y-p),r=y+p;
B[x].push_back({l,r});
}
else if(k==sum)
{
int l=y-p-1,r=y+p+1;
A[x].push_back({l,r});
}
else
{
//cout<<n*(n+1)/2<<'\n';
flo=1;
}
}
if(flo)
{
cout<<-1<<'\n';
return ;
}
for(int i=1;i<=n;i++)
{
int l=-1,r=1e18;
for(auto x:B[i])
l=max(l,x.first),r=min(r,x.second);
int u1=1e18,u2=0;
for(auto x:A[i])
u1=min(u1,x.first),u2=max(u2,x.second);
if(B[i].size()==0&&A[i].size()==0)
continue;
if(B[i].size()==0)
{
//cout<<u1<<'\n';
if(u1<0&&u2>2000000000)
{
cout<<-1<<'\n';
return ;
}
if(u1>=0)
b[i]=u1;
else if(u2<=2000000000)
b[i]=u2;
continue;
}
if(A[i].size()==0)
{
if(r<l)
{
cout<<-1<<'\n';
return ;
}
b[i]=l;
continue;
}
//cout<<u1<<" "<<u2<<'\n';
if((l>u1&&r<u2)||r<l)
{
cout<<-1<<'\n';
return ;
}
if(l<=u1)
b[i]=l;
else if(r>=u2)
b[i]=r;
}
for(int i=1;i<=n;i++)
cout<<b[i]<<" ";
cout<<'\n';
}
signed main()
{
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t=1;
cin>>t;
while(t--)
slove();
}