#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
#define vll vector<ll>
#define vvll vector<vll>
#define mll map<ll,ll>
#define f(i,m,n)   for(i=m;i<n;i++)
#define rf(i,n,m)  for(i=n;i>=m;i--)
#define ee '\n'
#define Ee endl
#define pb push_back
#define ff first
#define ss second
#define take(v,n) for(i=0;i<n;i++) cin>>v[i];
#define print(v) for(i=0;i<(int)v.size();i++) cout<<v[i]<<" ";
#define print1(a)       cout<<a<<ee;
#define print2(a,b)     cout<<a<<" "<<b<<ee;
#define print3(a,b,c)   cout<<a<<" "<<b<<" "<<c<<ee;
#define print4(a,b,c,d) cout<<a<<" "<<b<<" "<<c<<" "<<d<<ee;
#define fast ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define sot(v) sort(v.begin(),v.end());
#define all(v) v.begin(),v.end()
#define pll pair<ll,ll>
#define mpll map<pr,ll>
#define PI 3.14159265   ;
const ll mod =1e9+7;
void no()
{
    cout<<"NO"<<ee;
}
void yes()
{
    cout<<"YES"<<ee;
}
bool isPrime(int n)
{
    if (n <= 1)  return false;
    if (n <= 3)  return true;
    if (n % 2 == 0 || n % 3 == 0) return false;
    for (int i = 5; i*i <= n; i = i + 6)
        if (n%i == 0 || n % (i + 2) == 0)
            return false;
    return true;
}
ll powe(ll x, ll y) {
    ll res = 1;
    while (y > 0) {
        if (y & 1) res =( res * x)%mod;
        y = y >> 1;
        x = (x * x)%mod;
    }
    return res;
}
void solve()
{
    ll i,j,n,m,k1,k2,k3,k4,k;
    cin>>n>>m;
    vll temp(m);
    mll v,t;
    f(i,0,m)
    {
        cin>>j;
        temp[i]=j;
        v[j]++;
    }
    f(i,0,m)
    {
        cin>>j;
        t[temp[i]]=j;
    }
    // for(auto it:t)
    // {
    //     print2(it.ff,it.ss);
    // }
    if(n==1)
    {
        cout<<t[1]<<ee;
        return;
    }
    vll pre(n+2,0),suff(n+2,0);
    for(i=1;i<=n;i++)
    {
        if(i==1)
        {
            if(v[i]) pre[i]=t[i];
        }
        else 
        {
            if(v[i]) pre[i]=t[i];
            if(pre[i-1]>0)
            {
                if(pre[i]==0) pre[i]=pre[i-1]+1;
                else
                pre[i]=min(pre[i],pre[i-1]+1);
            }      
        }
       // print2(i,t[i]);
    }
   
    for(i=n;i>=1;i--)
    {
        if(i==n)
        {
            if(v[i]) suff[i]=t[i];
        }
        else 
        {
            if(v[i]) suff[i]=t[i];
            if(suff[i+1]>0)
            {
                if(suff[i]==0) suff[i]=suff[i+1]+1;
                else
                suff[i]=min(suff[i],suff[i+1]+1);
            }      
        }
    }
    // print(pre);
    // cout<<ee;
    // print(suff);
    // cout<<ee;
    for(i=1;i<=n;i++)
    {
        if(i==n)
        {
            cout<<pre[i]<<" ";
        }
        else{
            if(pre[i]>0 && suff[i]>0)
            cout<<min(pre[i],suff[i])<<" ";
            else if(pre[i]==0)
            cout<<suff[i]<<" ";
            else cout<<pre[i]<<" ";;
        }
    }
    cout<<ee;
}

int main() {
    #ifndef ONLINE_JUDGE 
        freopen("input.txt", "r", stdin); 
        freopen("output.txt", "w", stdout); 
    #endif
    fast;
    ll i, j, l, k, t, n;
    cin>>t;
    //t=1;
    for (i = 1; i <= t; i++)
    {
        //cout<<"Case #"<<i<<": ";
        solve();
    }
}
