#include <iostream>
using namespace std;
const int MAXN = 205;
int arr[MAXN][MAXN];
int main()
{
int T, S, C;
cin >> T;
while (T--)
{
cin >> S >> C;
for (int i = 0; i < S; i++) //第一行填数
{
cin >> arr[0][i];
}
for (int i = 1; i < S; i++) //阶梯状在下一行填数
{
for (int j = 0; j < S - i; j++)
arr[i][j] = arr[i - 1][j + 1] - arr[i - 1][j];
}
for (int i = 1; i <= C; i++) //在最后一行填数
{
arr[S - 1][i] = arr[S - 1][0];
}
for (int i = S - 2; i >= 0; i--) //依次在上一行末尾填数
{
for (int j = S - i; j < S - i + C; j++)
arr[i][j] = arr[i][j - 1] + arr[i + 1][j - 1];
}
for (int i = 0; i < C - 1; i++) //输出第一行新填入的数
{
cout << arr[0][S + i] << " ";
}
cout << arr[0][S + C - 1] << endl;
}
return 0;
}