import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class lode {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));
		
		
		try {
			int celkem  = Integer.parseInt(bfr.readLine());
			
			 for (int i=0; i< celkem; i++) {
				 int r = Integer.parseInt(bfr.readLine());
				 
				 List<Integer> kostky = zjistiKostky(r);
				 
				 boolean prvni = true;
				 for (int j = 0; j < kostky.size(); j++) {
					 if (prvni) {
						 System.out.print(kostky.get(j));
					 } else {
						 System.out.print(" " + kostky.get(j));
					 }
					 
					 
					 prvni = false;
				 }
				 
				 System.out.println();
				 
				 
			 }
			
		} catch (Exception e) {
			// TODO: handle exception
		}

	}
	
	
	private static List<Integer> zjistiKostky(int cislo) {
		List<Integer> list = new ArrayList<Integer>();
		
		int zacatek = 1;
		int rozdil = cislo;
		
		
		while (zacatek * 3 < cislo) {
			zacatek *= 3;
		}
		//mam nejtezsi kostku

		while (rozdil > 0 ) {
			Integer aktKostek = 0;
			
			while(rozdil - zacatek >= 0) {
				aktKostek++;
				rozdil -= zacatek;
			}

			zacatek /= 3;
			list.add(aktKostek);
		}
		
		while(zacatek / 3 > 0) {
			list.add(0);
			zacatek /= 3;
		}
		
		
		return list;
	}

}
