//#include<bits/stdc++.h>
//using namespace std;
//int f(int n){
// int r;
// if(n<3) r=1;
// else r=f(n-1)+f(n-2);
// return r;
// }
//int main(){
// int m;
// cout<<f(m)<<endl;
// cin>>m;
//return 0;
//}
//#include <bits/stdc++.h>
//using namespace std;
//int h=0;
//void hanNuo(int n,char a,char b,char c){
// if(n > 0){
// hanNuo(n - 1,a,c,b);
// h++;
// hanNuo(n-1,b,a,c);
// }
//}
//
//int main(){
// int n;
// cin>>n;
// hanNuo(n,'A','B','C');
// cout<<h;
//}
//#include<bits/stdc++.h>
//using namespace std;
//int a,s=0;
//int f(int n){
// int r=0;
// if(n==1) r=a;
// else r=f(n-1)*10+a;
// return r;
//}
//int main(){
// cin>>a;
// for(int i=1;i<=a;i++){
// s=s+f(i);
// }
// cout<<s;
//
// return 0;
//}
//#include<bits/stdc++.h>
//using namespace std;
//struct zp{
// int x,y,s;
// float b,c;
//}a[1000];
//int n,xx,yy;
//float bb;
//bool cmp(zp e,zp f)
//{
// bool r;
// if(e.c<f.c||(e.c==f.c&&e.s<f.s))
// return true;
// else
// return false;
//}
//int main()
//{
// cin>>xx>>yy;
// cin>>n;
// bb=xx*1.0/yy;
// for(int i=1;i<=n;i++)
// {
// cin>>a[i].x>>a[i].y;
// a[i].s=a[i].x*a[i].y;
// a[i].b=a[i].x*1.0/a[i].y;
// a[i].c=abs(a[i].b-bb);
// }
// sort(a+1,a+1+n,cmp);
// cout<<a[1].x<<" "<<a[1].y;
// return 0;
//}
//#include<bits/stdc++.h>
//using namespace std;
//int n;
//float s=0;
//int f(int n)
//{
// int r;
// if(n==1||n==2)
// r=1;
// else
// r=f(n-1)+f(n-2);
// return r;
//}
//int main()
//{
// cin>>n;
// for(int i=1;i<=n;i++)
// {
// s=s+f(i)*1.0/f(i+1);
// }
// printf("%.3f",s);
// return 0;
//}
#include<bits/stdc++.h>
using namespace std;
int main(){
char a[30];
int d=0,x=0,n=0;
cin>>a;
for(int i=0;i<strlen(a);i++){
if('A'<=a[i]&&a[i]<='Z'){
d++;
}
if('a'<=a[i]&&a[i]<='z'){
x++;
}
if('0'<=a[i]&&a[i]<='9'){
n++;
}
}
cout<<d<<" "<<x<<" "<<n;
}
/**************************************************************
Problem: 1097
User: chenzhuo1
Language: C++
Result: Accepted
Time:7 ms
Memory:2072 kb
****************************************************************/