func_code_string: //a.9   #include<bits/stdc++.h>   #define ll long long   #define all(x) x.begin(),x.end()   #define CASE(t) cout<< Case # <<(t)<< :  ;   #define endll endl   #define endl   n    #define INF 1e18   #define deb(x) cout <<  [  << (#x) <<  =  << x <<  ]  <<   n    #define deb2(x,y) cout <<  [  << (#x) <<  =  << x <<  ] [  << (#y) <<  =  << y <<  ]  <<   n    #define deb3(x,y,z) cout <<  [  << (#x) <<  =  << x <<  ] [  << (#y) <<  =  << y <<  ] [  << (#z) <<  =  << z <<  ]  <<   n    #define popcnt __builtin_popcountll   #define precise(x) fixed << setprecision(x)   #define ios ios_base::sync_with_stdio(false); cin.tie(NULL)   using namespace std;   const ll mod=1000000007;   const ll maxN=50005;      ll ceill(ll a,ll b){return a/b+bool(a%b);}   ll gcd(ll a,ll b){if(b==0)return a;return gcd(b, a % b);}   ll lcm(ll a,ll b){return (a*b)/gcd(a,b);}   ll power(ll x,ll y){ll res=1;while(y>0){if(y&1)res=(res*x)%mod;x=(x*x)%mod;y>>=1;}return res;}   void bin(unsigned n,string &str){str=  ;if(n>1)bin(n>>1,str);str+=to_string(n&1);}   bool isPrime(ll n)   {       if(n<=1)return false;else if(n<=3)return true;else if(n%2==0 || n%3==0)return false;       for(ll i=5;i*i<=n;i=i+6){if(n%i==0 || n%(i+2)==0)return false;}return true;   }      vector<ll>primes;   void SieveOfEratosthenes()   {       bool prime[maxN];primes.clear();       memset(prime, true, sizeof(prime));       for(ll i=2;i*i<maxN;i++)if(prime[i]==true)for(ll j=i*i;j<maxN;j+=i)prime[j]=false;       for(ll i=2;i<maxN;i++)if(prime[i])primes.push_back(i);   }   //vector<ll>fact(maxN);   //void factpre(){fact[0]=1;for(ll i=1;i<maxN;i++)fact[i]=(fact[i-1]*1LL*i)%mod;}   //ll mul(ll a,ll b){return (a*1LL*b)%mod;}   //ll nCr(ll n,ll k){if(k>n)return 0;return mul(fact[n],power(mul(fact[k],fact[n-k]),mod-2));}      /*ll spf[maxN];   void sieve()   {       spf[1]=1;for(ll i=2;i<maxN;i++)spf[i]=i;for(ll i=4;i<maxN;i+=2)spf[i]=2;       for(ll i=3;i*i<maxN;i++){if(spf[i]==i)for(ll j=i*i;j<maxN;j+=i)if(spf[j]==j)spf[j]=i;}   }   vector<ll>getfacts(ll x){vector<ll>vec;while(x!=1)vec.push_back(spf[x]),x=x/spf[x];return vec;}*/      /*ll fen[maxN];   void update(ll i,ll val,ll n){i++;for(;i<=n;i+=i&-i)fen[i]+=val;}   ll get(ll i){i++;ll res=0;for(;i>0;i-=i&-i)res+=fen[i];return res;}*/      void solve()   {       ll a,b;cin>>a>>b;       if(b==1){cout<< NO <<endl;return;}       cout<< YES <<endl;       cout<<a<<   <<a*b<<   <<a*(b+1)<<endl;   }   signed main()   {       ios;       ll tc=1; cin>>tc;       for(ll t=1;t<=tc;t++)       {           //CASE(t);           solve();       }   }   