Problem: A positive (strictly greater than zero) integer is called round if it is of the form d00...0. In other words, a positive integer is round if all its digits except the leftmost (most significant) are equal to zero. In particular, all numbers from 1 to 9 (inclusive) are round.

For example, the following numbers are round: 4000, 1, 9, 800, 90. The following numbers are not round: 110, 707, 222, 1001.

You are given a positive integer n (1 ≤ n ≤ 10^4). Represent the number n as a sum of round numbers using the minimum number of summands (addends). In other words, you need to represent the given number n as a sum of the least number of terms, each of which is a round number.

Input

The first line contains an integer t (1 ≤ t ≤ 10^4) — the number of test cases in the input. Then t test cases follow.

Each test case is a line containing an integer n (1 ≤ n ≤ 10^4).

Output

Print t answers to the test cases. Each answer must begin with an integer k — the minimum number of summands. Next, k terms must follow, each of which is a round number, and their sum is n. The terms can be printed in any order. If there are several answers, print any of them.

Example

Input


5
5009
7
9876
10000
10


Output


2
5000 9
1
7 
4
800 70 6 9000 
1
10000 
1
10 

Solution (in JAVA):

Solution:
/* package codechef; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
public class Codechef
{
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
    static int getInt() throws Exception {
         String str=br.readLine();
         int n=0;
         if(str!=null)
            n = Integer.parseInt(str);
        return n;
    }
    
    static boolean check(int T) throws Exception {
        
    if(T<=0 && T>10000)
     return false;
     else
        return true;
    }
    
	public static void main (String[] args) throws java.lang.Exception
	{
		int T = 0;
		T = getInt();
		if(check(T))    {
		for(int tt=1;tt<=T;tt++)
		{
		    int k = 0,n = 0;
		    k=getInt();
		    String str = Integer.toString(k);
		    char[] c = str.toCharArray();
		    if(check(k))    {
		        if(k>10 && k%(int)Math.pow(10,str.length()-1)!=0)   {
		        int i =0 ,j=0,cntr=0;
		            for(char f : c)   {
		                if(f-'0'!=0)
		                cntr++;
		            }
		            System.out.println(cntr);
		        for(i=0 ,j=(int)Math.pow(10,str.length()-1);i<str.length() && j>0;i++ ,j/=10)    {
		                if(c[i]!='0')
		                    System.out.print((c[i]-'0')*j + " ");
		                    }
		        System.out.println();
		        }
		    else if(k<=10 || k%(int)Math.pow(10,str.length()-1)==0)
		    {
		        n++;
		        System.out.println(n);
		        System.out.println(k);
		    }
		    }
		}
	}
}
}