/**
 * author : madhav
 * handle : madhav10
**/
#include <bits/stdc++.h>
using namespace std;
#define FAST() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
#define mod 1000000007
#define MOD1 998244353
#define inf 1e9
#define nl "\n"
#define ll long long
#define pi pair<int,int>
#define pb push_back
#define ppb pop_back
#define mp make_pair
#define ff first
#define ss second
#define PI 3.141592653589793238462
#define set_bits __builtin_popcountll
#define sz(x) ((int)(x).size())
#define all(x) (x).begin(), (x).end()
#define Sort(x) sort(all(x))
#define vi vector<int>
#define For(i,start,end) for( int i=(start);i<(end);i++)
#define debug(x) cerr << #x<<" "; _print(x); cerr << endl;

typedef unsigned long long ull;
typedef long double lld;

//....................................................................................................................................
void _print(int t) {cerr << t;}
void _print(string t) {cerr << t;}
void _print(char t) {cerr << t;}
void _print(lld t) {cerr << t;}
void _print(double t) {cerr << t;}
void _print(ull t) {cerr << t;}
 
template <class T, class V> void _print(pair <T, V> p);
template <class T> void _print(vector <T> v);
template <class T> void _print(set <T> v);
template <class T, class V> void _print(map <T, V> v);
template <class T> void _print(multiset <T> v);
template <class T, class V> void _print(pair <T, V> p) {cerr << "{"; _print(p.ff); cerr << ","; _print(p.ss); cerr << "}";}
template <class T> void _print(vector <T> v) {cerr << "[ "; for (T i : v) {_print(i); cerr << " ";} cerr << "]";}
template <class T> void _print(set <T> v) {cerr << "[ "; for (T i : v) {_print(i); cerr << " ";} cerr << "]";}
template <class T> void _print(multiset <T> v) {cerr << "[ "; for (T i : v) {_print(i); cerr << " ";} cerr << "]";}
template <class T, class V> void _print(map <T, V> v) {cerr << "[ "; for (auto i : v) {_print(i); cerr << " ";} cerr << "]";}
// void _print(pbds v) {cerr << "[ "; for (auto i : v) {_print(i); cerr << " ";} cerr << "]";}
//....................................................................................................................................

void print(vector<int> A){
	int n=A.size();
	for(int i=0;i<n;i++){
		cout<<A[i]<<" ";
	}
	cout<<"\n";
}
void print1(int A[],int n){
	cout<<"[ ";
	for(int i=0;i<n;i++){
		cout<<A[i]<<" , "; 
	}
	cout<<"]\n";
}
void solve(){
	int n,m,x;
	cin>>n>>m>>x;
	int A[n];
	For(i,0,n){
		cin>>A[i];
	}
	/*sort(A,A+n);
	int res[n],flg=0,p1=0,p2=n-1,j=0;
	while(p1<=p2){
		if(flg==0){
			res[A[p1].ss]=j;
			j++;
			p1++;
		}else{
			res[A[p2].ss]=j;
			p2--;
			j++;
		}
		if(j==m){
			flg=1-flg;
			j=0;
		}
	}
	cout<<"YES\n";
	For(i,0,n){
		cout<<res[i]+1<<" ";
	}
	cout<<nl;*/
	set<pi> s;
	For(i,0,m){
		s.emplace(0,i);
	}
	vi res;
	cout<<"YES\n";
	For(i,0,n){
		auto it=s.begin();
		int sum=it->first;
		int idx=it->second;
		sum=sum+A[i];
		s.erase(it);
		s.emplace(sum,idx);
		res.pb(idx+1);
	}
	For(i,0,n){
		cout<<res[i]<<" ";
	}
	cout<<nl;
}

int main(){
    FAST();
    int tt;
	cin>>tt;
	while(tt--){
		solve();
	}
    return 0;
}


