​传送门​​ Given an array a of length n, you can do at most k operations of the following type on it:

choose 2 different elements in the array, add 1 to the first, and subtract 1 from the second. However, all the elements of a have to remain non-negative after this operation.
What is lexicographically the smallest array you can obtain?

An array x is lexicographically smaller than an array y if there exists an index i such that xi<yi, and xj=yj for all 1≤j<i. Less formally, at the first index i in which they differ, xi<yi.

Input

The first line contains an integer t (1≤t≤20) – the number of test cases you need to solve.

The first line of each test case contains 2 integers n and k (2≤n≤100, 1≤k≤10000) — the number of elements in the array and the maximum number of operations you can make.

The second line contains n space-separated integers a1, a2, …, an (0≤ai≤100) — the elements of the array a.

Output

For each test case, print the lexicographically smallest array you can obtain after at most k operations.

#include<bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
#define ll long long
const int mod = 1e9+7;
int a[110];

int main()
{
int t;
cin>>t;
while(t--)
{
memset(a,0,sizeof(a));
int n,k;
cin>>n>>k;
for(int i = 1; i <= n; i++)
{
cin>>a[i];
}
for(int i = 1; i < n; i++)
{
if(k >= a[i])
{
a[n] += a[i];
k -= a[i];
a[i] = 0;
}
else
{
a[n] += k;
a[i] -= k;
k = 0;
}
}
for(int i = 1; i <= n; i++)
{
printf("%d ",a[i]);
}
cout<<endl;
}
}