You are given two positive integers $n$ ($1 \le n \le 10^9$) and $k$ ($1 \le k \le 100$). Represent the number $n$ as the sum of $k$ positive integers of the same parity (have the same remainder when divided by $2$).

In other words, find $a_1, a_2, \ldots, a_k$ such that all $a_i>0$, $n = a_1 + a_2 + \ldots + a_k$ and either all $a_i$ are even or all $a_i$ are odd at the same time.

If such a representation does not exist, then report it.


-----Input-----

The first line contains an integer $t$ ($1 \le t \le 1000$) — the number of test cases in the input. Next, $t$ test cases are given, one per line.

Each test case is two positive integers $n$ ($1 \le n \le 10^9$) and $k$ ($1 \le k \le 100$).


-----Output-----

For each test case print:

  YES and the required values $a_i$, if the answer exists (if there are several answers, print any of them);  NO if the answer does not exist. 

The letters in the words YES and NO can be printed in any case.


-----Example-----
Input
8
10 3
100 4
8 7
97 2
8 8
3 10
5 3
1000000000 9

Output
YES
4 2 4
YES
55 5 5 35
NO
NO
YES
1 1 1 1 1 1 1 1
NO
YES
3 1 1
YES
111111110 111111110 111111110 111111110 111111110 111111110 111111110 111111110 111111120

Difficulty: introductory

Starter code:

Solutions:
t=int(input())
for i in range (t):
    n,k=map(int,input().split())
    if n-k+1>0 and (n-k+1)%2==1:
        print("YES")
        print(*([1]*(k-1)), n-k+1)
    elif n-k*2+2>0 and (n-k*2+2)%2==0:
        print("YES")
        print(*([2]*(k-1)), n-k*2+2)
    else:
        print("NO")

t = int(input())
for _ in range(t):
    n, k = list(map(int, input().split()))
    if n % 2 ==  k % 2 and n >= k:
        print('YES')
        out = [1] * k
        out[0] += (n - k)
        print(*out)
    elif n % 2 == 0 and n >= 2 * k:
        print('YES')
        out = [2] * k
        out[0] += (n - 2*k)
        print(*out)
    else:
        print('NO')


for _ in range(int(input())):
    n, k = list(map(int, input().split()))
    if k % 2 == 1:
        if n % 2 == 0:
            if 2*k <= n:
                print('YES')
                print(*[2]*(k-1), n-2*(k-1))
            else:
                print('NO')
        else:
            if k <= n:
                print('YES')
                print(*[1]*(k-1), n-k+1)
            else:
                print('NO')
    else:
        if k <= n and n % 2 == 0:
            print('YES')
            print(*[1]*(k-1), n-k+1)
        else:
            print('NO')


import sys

readline = sys.stdin.readline
readlines = sys.stdin.readlines
ns = lambda: readline().rstrip()
ni = lambda: int(readline().rstrip())
nm = lambda: map(int, readline().split())
nl = lambda: list(map(int, readline().split()))
prn = lambda x: print(*x, sep='\n')


def solve():
    n, k = nm()
    l = [1]*(k-1) + [n-k+1]
    if l[-1] > 0 and l[-1] % 2:
        print('YES')
        print(*l)
        return
    l = [2]*(k-1) + [n - 2*(k-1)]
    if l[-1] > 0 and l[-1] % 2 == 0:
        print('YES')
        print(*l)
        return
    print('NO')
    return

# solve()

T = ni()
for _ in range(T):
    solve()


for _ in range(int(input())):
    n, k = map(int, input().split())
    odd = n - k + 1
    even = n - ((k-1) * 2)
    if odd > 0 and odd % 2 == 1:
        print('YES')
        print('1 ' * (k-1), odd, sep='')
    elif even > 0 and even % 2 == 0:
        print('YES')
        print('2 ' * (k-1), even, sep='')
    else:
        print('NO')

for i in range(int(input())):
  n,k=[int(i) for i in input().split()]
  if k>n:
    print('NO')
  elif (n-k+1)%2==1 and n-k+1>0:
    print('YES')
    for i in range(k-1):
      print(1,end=' ')
    print(n-k+1)
  elif  (n-2*(k-1))%2==0 and n-2*(k-1)>0:
    print('YES')
    for i in range(k-1):
      print(2,end=' ')
    print(n-2*(k-1))
  else:
    print('NO')


import sys
import os
import time
import collections
from collections import Counter, deque
import itertools
import math
import timeit
import random
import string

#########################
# imgur.com/Pkt7iIf.png #
#########################

def sieve(n):
    if n < 2: return list()
    prime = [True for _ in range(n + 1)]
    p = 3
    while p * p <= n:
        if prime[p]:
            for i in range(p * 2, n + 1, p):
                prime[i] = False
        p += 2
    r = [2]
    for p in range(3, n + 1, 2):
        if prime[p]:
            r.append(p)
    return r

def divs(n, start=1):
    divisors = []
    for i in range(start, int(math.sqrt(n) + 1)):
        if n % i == 0:
            if n / i == i:
                divisors.append(i)
            else:
                divisors.extend([i, n // i])
    return divisors

def divn(n, primes):
    divs_number = 1
    for i in primes:
        if n == 1:
            return divs_number
        t = 1
        while n % i == 0:
            t += 1
            n //= i
        divs_number *= t

def flin(d, x, default=-1):
    left = right = -1
    for i in range(len(d)):
        if d[i] == x:
            if left == -1: left = i
            right = i
    if left == -1:
        return default, default
    else:
        return left, right

def ceil(n, k): return n // k + (n % k != 0)
def ii(): return int(input())
def mi(): return list(map(int, input().split()))
def li(): return list(map(int, input().split()))
def lcm(a, b): return abs(a * b) // math.gcd(a, b)
def prr(a, sep=' '): print(sep.join(map(str, a)))
def dd(): return collections.defaultdict(int)
def ddl(): return collections.defaultdict(list)

########################################################################################################################
# input = sys.stdin.readline

for _ in range(ii()):
    n, k = mi()
    even = n - 2*(k - 1)
    odd = n - (k - 1)
    if odd > 0 and odd % 2:
        res = [1]*(k - 1) + [odd]
        print('YES')
        prr(res, ' ')
    elif even > 0 and even % 2 == 0:
        res = [2] * (k - 1) + [even]
        print('YES')
        prr(res, ' ')
    else:
        print('NO')


for tc in range(int(input())):
    n, k = [int(s) for s in input().split()]

    if n % 2 == 1 and k % 2 == 0:
        print('NO')
        continue
    
    if n % 2 == 0 and k % 2 == 1:
        least = 2
    else:
        least = 1

    if least * k > n:
        print('NO')
        continue

    print('YES')
    print(*([n - least*k + least] + [least] * (k-1)))


t = int(input())
for _ in range(t):
    n, k = list(map(int, input().split()))
    ans = []
    if n % 2 == 0:
        if k % 2 == 0:
            for i in range(k-1):
                ans.append(1)
                n -= 1
            ans.append(n)

        else:
            for i in range(k-1):
                ans.append(2)
                n -= 2
            ans.append(n)

    else:
        if k % 2 == 0:
            ans.append(-1)
        else:
            for i in range(k-1):
                ans.append(1)
                n -= 1
            ans.append(n)
    if min(ans) <= 0:
        print("NO")
    else:
        print("YES")
        print(*ans)


t = int(input())
for _ in range(t):
	n, k = map(int, input().split())
	if k%2 == 0 and n%2 == 1:
		print("NO")
	elif (k%2 == 1 and n%2 == 0 and n < 2*k) or n < k:
		print("NO")
	elif k%2 == 1 and n%2 == 0:
		print("YES")
		ans = [2] * (k-1) + [n-2*(k-1)]
		print(*ans)
	else:
		print("YES")
		ans = [1] * (k-1) + [n-k+1]
		print(*ans)

for t in range(int(input())):
    n,k = map(int,input().split())
    if n < k:
        print("NO")
    elif n%2==k%2:
        print("YES")
        print(*([1]*(k-1)+[n-(k-1)]))
    elif n%2==0 and n >= 2*k-1:
        print("YES")
        print(*([2]*(k-1)+[n-2*(k-1)]))
    else:
        print("NO")

import sys
input = sys.stdin.readline

t=int(input())
for tests in range(t):
    n,k=list(map(int,input().split()))

    if n%2==k%2 and n>=k:
        print("YES")
        ANS=[1]*(k-1)+[n-(k-1)]
        print(*ANS)

    elif n%2==0 and n>=2*k:
        print("YES")
        ANS=[2]*(k-1)+[n-2*(k-1)]
        print(*ANS)
    else:
        print("NO")
        
        
        


import math,sys
from sys import stdin, stdout
from collections import Counter, defaultdict, deque
input = stdin.readline
I = lambda:int(input())
li = lambda:list(map(int,input().split()))

def case():
    n,k=li()
    if(k>n):
        print("NO")
        return()
    if((n-k-1)%2):
        print("YES")
        for i in range(k-1):
            print(1,end=" ")
        print(n+1-k)
        return 
    if(n-2*k<0):
        print("NO")
        return 
    else:
        
        if((n-2*k-2)%2==0):
            print("YES")
            for i in range(k-1):
                print(2,end=" ")
            print(n-2*k+2)
        else:
            print("NO")     
for _ in range(int(input())):
    case()

import math
for _ in range(int(input())):
	n,k=list(map(int,input().split()))
	if n<k:
		print("NO")
	else:
		if n%2==0:
			if k%2==0:
				d=[]
				for i in range(k-1):
					d.append(1)
				d.append(n-k+1)
				print("YES")
				print(*d)
			else:
				if n<2*k:
					print("NO")
				else:
					d=[]
					for i in range(k-1):
						d.append(2)
					d.append(n-2*(k-1))
					print("YES")
					print(*d)
		else:
			if k%2==1:
				d=[]
				for i in range(k-1):
					d.append(1)
				d.append(n-k+1)
				print("YES")
				print(*d)
			else:
				print("NO")



	


for f in range(int(input())):
    n,k=map(int,input().split())
    if k%2==0:
        if n%2==0:
            if n<k:
                print("NO")
            else:
                print("YES")
                sol=[1]*k
                sol[0]=n-k+1
                print(*sol)
        else:
            print("NO")
    else:
        if n%2==0:
            if 2*k>n:
                print("NO")
            else:
                print("YES")
                sol=[2]*k
                sol[0]=n-2*k+2
                print(*sol)
        else:
            if k>n:
                print("NO")
            else:
                print("YES")
                sol=[1]*k
                sol[0]=n-k+1
                print(*sol)