Nastia has 2 positive integers A and B. She defines that:

  * The integer is good if it is divisible by A ⋅ B; 
  * Otherwise, the integer is nearly good, if it is divisible by A. 



For example, if A = 6 and B = 4, the integers 24 and 72 are good, the integers 6, 660 and 12 are nearly good, the integers 16, 7 are neither good nor nearly good.

Find 3 different positive integers x, y, and z such that exactly one of them is good and the other 2 are nearly good, and x + y = z.

Input

The first line contains a single integer t (1 ≤ t ≤ 10 000) — the number of test cases.

The first line of each test case contains two integers A and B (1 ≤ A ≤ 10^6, 1 ≤ B ≤ 10^6) — numbers that Nastia has.

Output

For each test case print: 

  * "YES" and 3 different positive integers x, y, and z (1 ≤ x, y, z ≤ 10^{18}) such that exactly one of them is good and the other 2 are nearly good, and x + y = z. 
  * "NO" if no answer exists. 

You can print each character of "YES" or "NO" in any case.

If there are multiple answers, print any.

Example

Input


3
5 3
13 2
7 11


Output


YES
10 50 60
YES
169 39 208
YES
28 154 182

Note

In the first test case: 60 — good number; 10 and 50 — nearly good numbers.

In the second test case: 208 — good number; 169 and 39 — nearly good numbers.

In the third test case: 154 — good number; 28 and 182 — nearly good numbers.

// Problem: A. Nastia and nearly Good Numbers
// Contest: Codeforces - Codeforces Round #720 (Div. 2)
// URL: https://codeforces.com/contest/1521/problem/0
// Memory Limit: 256 MB
// Time Limit: 1000 ms
// Powered by CP Editor (https://github.com/cpeditor/cpeditor)

#include <bits/stdc++.h> 
using namespace std; 
#define int                 long long int
#define rep(i,k,n)          for(int i=k;i<n;i++)
#define fo(i,n)             for(int i=0;i<n;i++)
#define pb                  push_back  
#define mkp                 make_pair
#define fi                  first
#define se                  second
#define pii 				pair<int,int>
#define vi                  vector <int>
#define vvi					vector <vector<int> >
#define endl				"\n"
#define all(x)              x.begin(), x.end()
#define sortall(x)          sort(all(x))
#define deb(x)              cout << #x << "=" << x << endl
#define deb2(x, y)          cout << #x << "=" << x << "," << #y << "=" << y << endl
#define show(A)				for (auto i: A) cout << i << " "; cout << '\n';
#define fast_io             ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)

const int mod = 1000000007;
const int INF = 1e18;

void main_solve()
{
	int a,b;
	cin>>a>>b;
	if(b==1){
		cout<<"NO"<<endl;
		return;
	}
	cout<<"YES"<<endl;
	cout<<a*(b-1)<<" "<<a*(b+1)<<" "<<2*a*b<<endl;
}

int32_t main()
{
	fast_io;
	int T=clock();

	int tc = 1;
	cin>>tc;
	while(tc--)
	{
		main_solve();
	}

	cerr<<"\nTIME: "<<(double)(clock()-T)/CLOCKS_PER_SEC<<" sec\n";
    T = clock();

	return 0;
}
	
