
import java.util.*;
class Partiell
{
	static String[] k;
	//static Set set;
	static SortedSet set;
	static public void main(String [] a)
	{
		//set = new HashSet();
		set = Collections.synchronizedSortedSet(new TreeSet());
		k=a;
		gen("",(new Integer(k[0])).intValue());
		Iterator p = set.iterator();
		while(p.hasNext())
		{
			System.out.println(p.next());
		}
	} 
	
	static public void gen (String a,int n)
	{
		if(!a.equals("")) 
		{
			char[] m= a.toCharArray();
			sort(m);
			a= new String(m);
			set.add(a);
		}
		if(n!=0)
		{
			for(int i=1;i<k.length;i++)
			{
				gen(a+k[i],n-1);
			}
		}
	}
	
	public static void sort(char [] arry)
	{
		char temp;
		for(int i =1;i<arry.length;i++)
		{
			for(int k=i;k!=0;k--)
			{
				
				if (arry[k-1]> arry[k])
				{
					temp = arry[k];
					arry[k] = arry[k-1];
					arry[k-1] = temp;
				}
				else
				{
					break;
				}
					
			}
		}
		
	}
	
}
