#include<iostream>
using namespace std;
string a;
//int m[13]={0,1}
int kn=0,js=0,zhi[99999999];
bool su[99999999+10];
int qs(){
int shu=0,i;
for(i=0;i<8;i++){
shu=shu*10+a[i]-'0';
}
// cout<<shu<<endl;
return shu;
}
void ss(int wz,int yjs){
for(int i=wz;i<8;i++){
if(a[i]=='-'){
int zz=9;
if(i==4){
if(a[5]-'0'<=2&&a[5]-'0'>=0)
zz=1;
else
zz=0;
}
if(i==5){
if(a[4]-'0'==1)
zz=2;
else
zz=9;
}
if(i==6){
int mon=(a[4]-'0')*10+(a[5]-'0');
if(mon!=2){
if(((mon==1||mon==3||mon==5||mon==7||mon==8||mon==10||mon==12)&&(a[7]-'0'>=0&&a[7]-'0'<=1))||((mon==4||mon==6||mon==9||mon==11)&&(a[7]-'0'==0)))
zz=3;
else{
bool flag=0;
if(mon==2){
int year=0;
for(int y=1;y<=3;y++){
year=year*10+a[y]-'0';
}
if(year%100){
if(year%400)
flag=1;
else
flag=0;
}
else
flag=1;
}
if(flag&&(a[7]-'0'<=9))
zz=2;
else
zz=1;
}
}
}
if(i==7){
int mon=(a[4]-'0')*10+(a[5]-'0');
if(mon==1||mon==3||mon==5||mon==7||mon==8||mon==10||mon==12)
zz=1;
if(mon==4||mon==6||mon==9||mon==11)
zz=0;
if(mon==2){
int year=0;
for(int y=1;y<=3;y++){
year=year*10+a[y]-'0';
}
if(year%100){
if(year%400)
zz=9;
else
zz=8;
}
else
zz=9;
}
}
for(int j=0;j<=zz;j++){
a[i]=j+'0';
ss(i+1,yjs+1);
a[i]='-';
}
break;
}
}
if(yjs==js){
int ssr=qs();
if(!su[ssr])
kn++;
}
}//xxxx xx xx
int main(){
int n;
cin>>n;
zhi[1]=2;
int idx=1;
for(int i=2;i<99999999;i++){
if(!su[i])zhi[idx++]=i;
for(int i2=1;i*zhi[i2]<=99999999&&i2<=idx;i2++){
su[i*zhi[i2]]=1;
if(!(i%zhi[i2]))
break;
}
}
for(int i=1;i<=n;i++){
cin>>a;
kn=0;js=0;
for(int j=1;j<8;j++){
if(a[j]=='-')
js++;
}
ss(0,0);
cout<<kn<<endl;
}
return 0;
}