def solve():
import sys
input = sys.stdin.read
data = input().split()
index = 0
t = int(data[index])
index += 1
results = []
for _ in range(t):
n = int(data[index])
k = int(data[index + 1])
index += 2
if n == 1:
# Only one number, it must be k
results.append(f"{k}")
continue
# More than one number, aim to spread out k into n parts optimally
answer = []
while n > 1 and k > 0:
# Consider the largest power of 2 less than or equal to k
if k >= n: # We need at least 1 for each remaining position
# Place the maximum power of 2 that doesn't exceed k - (n-1)
max_power = 1
while max_power <= (k - (n-1)):
max_power <<= 1
max_power >>= 1 # Last shift made max_power too big
if max_power == 0:
max_power = 1
# Use this power and reduce k
answer.append(max_power)
k -= max_power
else:
# We cannot place a power of 2 that big, we place 1 instead
answer.append(1)
k -= 1
n -= 1
# Finally add whatever remains of k into the last position if n is 1
answer.append(k)
results.append(" ".join(map(str, answer)))
sys.stdout.write("\n".join(results) + "\n")
solve()
ZGVmIHNvbHZlKCk6CiAgICBpbXBvcnQgc3lzCiAgICBpbnB1dCA9IHN5cy5zdGRpbi5yZWFkCiAgICBkYXRhID0gaW5wdXQoKS5zcGxpdCgpCiAgICAKICAgIGluZGV4ID0gMAogICAgdCA9IGludChkYXRhW2luZGV4XSkKICAgIGluZGV4ICs9IDEKICAgIHJlc3VsdHMgPSBbXQogICAgCiAgICBmb3IgXyBpbiByYW5nZSh0KToKICAgICAgICBuID0gaW50KGRhdGFbaW5kZXhdKQogICAgICAgIGsgPSBpbnQoZGF0YVtpbmRleCArIDFdKQogICAgICAgIGluZGV4ICs9IDIKICAgICAgICAKICAgICAgICBpZiBuID09IDE6CiAgICAgICAgICAgICMgT25seSBvbmUgbnVtYmVyLCBpdCBtdXN0IGJlIGsKICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQoZiJ7a30iKQogICAgICAgICAgICBjb250aW51ZQogICAgICAgIAogICAgICAgICMgTW9yZSB0aGFuIG9uZSBudW1iZXIsIGFpbSB0byBzcHJlYWQgb3V0IGsgaW50byBuIHBhcnRzIG9wdGltYWxseQogICAgICAgIGFuc3dlciA9IFtdCiAgICAgICAgd2hpbGUgbiA+IDEgYW5kIGsgPiAwOgogICAgICAgICAgICAjIENvbnNpZGVyIHRoZSBsYXJnZXN0IHBvd2VyIG9mIDIgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGsKICAgICAgICAgICAgaWYgayA+PSBuOiAgIyBXZSBuZWVkIGF0IGxlYXN0IDEgZm9yIGVhY2ggcmVtYWluaW5nIHBvc2l0aW9uCiAgICAgICAgICAgICAgICAjIFBsYWNlIHRoZSBtYXhpbXVtIHBvd2VyIG9mIDIgdGhhdCBkb2Vzbid0IGV4Y2VlZCBrIC0gKG4tMSkKICAgICAgICAgICAgICAgIG1heF9wb3dlciA9IDEKICAgICAgICAgICAgICAgIHdoaWxlIG1heF9wb3dlciA8PSAoayAtIChuLTEpKToKICAgICAgICAgICAgICAgICAgICBtYXhfcG93ZXIgPDw9IDEKICAgICAgICAgICAgICAgIG1heF9wb3dlciA+Pj0gMSAgIyBMYXN0IHNoaWZ0IG1hZGUgbWF4X3Bvd2VyIHRvbyBiaWcKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgaWYgbWF4X3Bvd2VyID09IDA6CiAgICAgICAgICAgICAgICAgICAgbWF4X3Bvd2VyID0gMQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAjIFVzZSB0aGlzIHBvd2VyIGFuZCByZWR1Y2UgawogICAgICAgICAgICAgICAgYW5zd2VyLmFwcGVuZChtYXhfcG93ZXIpCiAgICAgICAgICAgICAgICBrIC09IG1heF9wb3dlcgogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIyBXZSBjYW5ub3QgcGxhY2UgYSBwb3dlciBvZiAyIHRoYXQgYmlnLCB3ZSBwbGFjZSAxIGluc3RlYWQKICAgICAgICAgICAgICAgIGFuc3dlci5hcHBlbmQoMSkKICAgICAgICAgICAgICAgIGsgLT0gMQogICAgICAgICAgICBuIC09IDEKICAgICAgICAKICAgICAgICAjIEZpbmFsbHkgYWRkIHdoYXRldmVyIHJlbWFpbnMgb2YgayBpbnRvIHRoZSBsYXN0IHBvc2l0aW9uIGlmIG4gaXMgMQogICAgICAgIGFuc3dlci5hcHBlbmQoaykKICAgICAgICAKICAgICAgICByZXN1bHRzLmFwcGVuZCgiICIuam9pbihtYXAoc3RyLCBhbnN3ZXIpKSkKICAgIAogICAgc3lzLnN0ZG91dC53cml0ZSgiXG4iLmpvaW4ocmVzdWx0cykgKyAiXG4iKQoKCnNvbHZlKCk=