import java.util.*;
import java.io.*;
public class ZongHe
{
public static void main(String[] args)
{
System.out.println("please input a string ends with \'#\'");
String str=getString();
System.out.println("ַ"+str);
Vector vec=tokenizer(str);
System.out.println("е"+vec.size());
deleteSame(vec);
System.out.println("ͬĵ"+vec.size());
String str1[]=toStringArray(vec);
sortString(str1);
System.out.println("ĸ˳");
for(int k=0;k<str1.length;k++)
{
System.out.print(str1[k]+" ");
}
}
public static String getString()
{
byte buffer[]=new byte[256];
StringBuffer sbuffer=new StringBuffer();
try
{
while(true)
{
int n=System.in.read(buffer);    //ͨһݶֽbuffer
String s=new String(buffer,0,n-2);    //ֽеݳȥسתΪַ
sbuffer.append(" "+s);
if(s.equals("#"))   //һֻһַ#ѭ
{
break;
}
}
}
catch(IOException e)
{
System.out.print(e);
}
return sbuffer.toString();
}
public static Vector tokenizer(String s)
{
StringTokenizer str1=new StringTokenizer(s,",?. ");
Vector v=new Vector();
while(str1.hasMoreTokens())
{
v.addElement(str1.nextToken());    //ȡһַv
}
return v;
}
public static void deleteSame(Vector v)
{
for(int x=0;x<v.size();x++)
{
for(int y=v.size()-1;y>x;y--)
{
if(v.elementAt(y).equals(v.elementAt(x)))    //жϻȡԪǷظ
{
v.removeElementAt(y);
}
}
}
}
public static void sortString(String s[])
{
for(int k=0;k<s.length-1;k++)
{
String temp;
for(int m=k+1;m<s.length;m++)
{
if(s[k].compareTo(s[m])>0)
{
temp=s[k];
s[k]=s[m];
s[m]=temp;
}
}
}
}
public static String[] toStringArray(Vector v)
{
String[] s=new String[v.size()];
int i=0;
for(Enumeration e=v.elements();e.hasMoreElements();)    //жvԪǷδȡ
{
s[i]=(String)e.nextElement();    //һԪתΪַ
i++;
}
return s;
}
}
