#include<bits/stdc++.h>
using namespace std;
bool tj1(string x){
for(int i=1;i<=x.size();i++){
if(((x[i]<='9')&&(x[i]>='0'))||((x[i]>='A')&&(x[i]<='Z'))||((x[i]>='a')&&(x[i]<='z'))||x[i]=='!'||x[i]=='@'||x[i]=='#'||x[i]=='$'){
continue;
}else{
return 0;
}
}
return 1;
}
bool tj2(string x){
if(x.size()>=6&&x.size()<=12) return 1;
else return 0;
}
bool tj3(string x){
int f1=0,f2=0,f3=0,f4=0;
for(int i=1;i<=x.size();i++){
if(x[i]<='Z'&&x[i]>='A'){
f1=1;
}
if(x[i]<='z'&&x[i]>='a'){
f2=1;
}
if(x[i]<='9'&&x[i]>='0'){
f3=1;
}
if(x[i]=='!'||x[i]=='@'||x[i]=='#'||x[i]=='$'){
f4=1;
}
}
if((f1+f2+f3)>= 2 && f4== 1) return 1;
else return 0;
}
int main(){
string s="";
cin >> s;
s=s+',';
int x=0;
while(1){
int k=s.find(',',x);
string m=s.substr(x,k-x);
x=k+1;
if(k==-1){
break;
}
if(tj1(m)&&tj2(m)&&tj3(m)){
cout<<m<<endl;
}
}
return 0;
}