import java.io.*;
import java.util.*;
import java.awt.*;
import java.math.*;

public class Main implements Runnable {

	static PrintWriter out = new PrintWriter( new BufferedOutputStream(System.out) );
	public static void main(String [] asda)	throws Exception	{
		new Thread(null, new Main(), "Main", 1 << 28).start();
	}
	
	public void run()	{
		InputReader reader = new InputReader(System.in);
		
		int CASES = reader.readInt();
		while	(CASES-- > 0)	{
			int N = reader.readInt();
			int M = reader.readInt();
			int [] v = new int [N];
			for (int k = 0; k < N; k++)	v[k] = reader.readInt();
			
			solve(N, M, v);
		}
		
		//
		out.close();
		System.exit(0);
	}
	void solve(int N, int M, int [] v)	{
		long lo = 0, hi = 0;
		for (int k = 0; k < N; k++)	{
			lo = Math.max(lo, v[k]);
			hi += v[k];
		}
		
		long ans = hi;
		long sum = 0;
		while	( lo <= hi )	{
			long mid = (lo + hi) >> 1;
			int req = 1;
			sum = 0;
			for (int k = 0; k < N; k++)	{
				if ( sum + v[k] <= mid )	sum += v[k];
				else {
					sum = v[k];
					req++;
				}
			}
			
			if	( req <= M )	{
				ans = mid;
				hi = mid - 1;
			}	else	lo = mid + 1;
		}
		
		// ans is max value
		StringBuilder sb = new StringBuilder();
		sb.append( v[N - 1] );
		sum = v[N - 1];
		M--;
		for (int k = N - 2; k >= 0; k--)	{
			if	( sum + v[k] <= ans && k + 1 > M )	{
				sb.insert(0, " ");
				sum += v[k];
			}	else	{
				sum = v[k];
				sb.insert(0, " / ");
				M--;
			}
			sb.insert(0, v[k]);
		}
		out.println(sb);
	}
}