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()方法并释放其分配的内存
    }
}