import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner sr=new Scanner(System.in);
while(sr.hasNext())//判断是否有输入,若有输入,则返回true
{
int count1=0,count2=0,count3=0,count4=0;
//由于存在多组输入,所以必须在while循环内进行初始化
String str1=sr.nextLine();
for(int i=0;i<str1.length();i++)
{
if((str1.charAt(i)>='A'&&str1.charAt(i)<='Z')||(str1.charAt(i)>='a'&&str1.charAt(i)<='z'))
//判断当前字符是否为英文字符,也可用英文字符的ASCII码进行判断
//直接调用大小写英文字母判断方法isUpperCase和isLowerCase判断也行
count1++;
else if(str1.charAt(i)==32)//判断当前字符是否为空格字符
count2++;
else if(str1.charAt(i)>=48&&str1.charAt(i)<=57)//判断当前字符是否为数字字符
count3++;
else//其它字符
count4++;
}
System.out.print(count1+"\n"+count2+"\n"+count3+"\n"+count4+"\n");//换行输出
}
sr.close();//没有输入,则关闭hasNext()方法并释放其分配的内存
}
}