#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+10;
ll n,m,k,T;
struct node{
ll l,r,id;
}e[N];
inline void p(){
cout<<"Yes\n";
for(int i=1;i<=n;i++)cout<<e[i].l<<" ";
cout<<"\n";
}
inline bool cmp(node a,node b){
return a.r-a.l<b.r-b.l;
}
inline bool dmp(node a,node b){
return a.id<b.id;
}
signed main(){
cin.tie(0),cout.tie(0);
cin>>T;
while(T--){
cin>>n>>k;
ll mn=INT_MAX;
bool op=0;
for(int i=1;i<=n;i++){
cin>>e[i].l>>e[i].r;
mn=min(mn,e[i].r);
if(e[i].r<k){
op=1;
}
e[i].id=i;
}
if(op){
cout<<"No\n";
continue;
}
if(k==1){p();continue;}
sort(e+1,e+n+1,cmp);
for(int i=k;;i++){
op=0;
if(i>mn){
cout<<"No\n";
break;
}
for(int j=1;j<=n;j++){
if((e[j].r/i*i>=e[j].l&&e[j].r/i*i<=e[j].r)||(e[j].l/i*i>=e[j].l&&e[j].l/i*i<=e[j].r)){
continue;
}
else{
op=1;
break;
}
}
if(op==1){
continue;
}
if(op==0){
cout<<"Yes\n";
sort(e+1,e+n+1,dmp);
for(int j=1;j<=n;j++){
if(e[j].l/i*i>=e[j].l&&e[j].l/i*i<=e[j].r){
cout<<e[j].l/i*i<<" ";
continue;
}
else{
cout<<e[j].r/i*i<<" ";
continue;
}
}
cout<<"\n";
break;
}
}
}
return 0;
}