#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
int judge(char* a) {
int len = strlen(a);
if (len < 6 || len > 12) {
return 0;
}
int num = 0, low = 0, nal = 0, up = 0;
for (int i = 0; i < len; i++) {
if (a[i] >= 'a' && a[i] <= 'z') {
low = 1;
}
else if (a[i] >= '0' && a[i] <= '9') {
num = 1;
}
else if (a[i] >= 'A' && a[i] <= 'Z') {
up = 1;
}
else if (a[i] == '!' || a[i] == '@' || a[i] == '#' || a[i] == '$') {
nal = 1;
}
else {
return 0;
}
}
if ((low + num + up < 2) || nal != 1) {
return 0;
}
return 1;
}
int main() {
char arr[102];
scanf("%s", &arr);
char* arr1[100];
char* p = strtok(arr, ",");
int i = -1;
int j = 0;
while (p != NULL) {
arr1[++i] = (char*)malloc(strlen(p) + 1);
strcpy(arr1[i], p);
p = strtok(NULL, ",");
if (judge(arr1[i])) {
j++;
}
}
for (int k = 0; k < j; k++) {
if (judge(arr1[k])) {
printf("%s", arr1[k]);
}
if (k != j - 1) {
printf("\n");
}
}
for (int k = 0; k < i; k++) {
free(arr1[k]);
}
return 0;
}