#include <iostream>
#include <string>
using namespace std;
/*
20 pazdziernika 1987
niepoprawny format daty
niepoprawny format daty
29 lutego 2004
niepoprawny format daty
*/
void podziel(string s,int &DD,int &MM,int &RRRR){
if(s.length()==8){
DD=stoi(s.substr(0,2));
MM=stoi(s.substr(2,2));
RRRR=stoi(s.substr(4));
}
else {DD=-1;MM=-1;RRRR=-1;}
}
bool SprawdzDate(int &DD,int &MM,int &RRRR){
if(MM==1||MM==3||MM==5||MM==7||MM==8||MM==10||MM==12){
if(DD>0&&DD<=31){
if(RRRR>=1000&&RRRR<=2200) return true;
}
}
else if(MM==4||MM==6||MM==9||MM==11){
if(DD>0&&DD<=30){
if(RRRR>=1000&&RRRR<=2200) return true;
}
}
else if(MM==2){
if(RRRR%4==0&&RRRR%100!= 0||RRRR%400==0){
if(DD>0&&DD<=29){
if(RRRR>=1000&&RRRR<=2200) return true;
}
else{
if(DD>0&&DD<=28){
if(RRRR>=1000&&RRRR<=2200) return true;
}
}
}
}
return false;
}
int main() {
// your code goes here
int t=1,DD=0,MM=0,RRRR=0;
string data;
cin>>t;
while(t--){
cin>>data;
podziel(data,DD,MM,RRRR);
//cout<<data<<'\n';
//cout<<DD<<"-"<<MM<<"-"<<RRRR<<'\n';
//cout<<SprawdzDate(DD,MM,RRRR)<<'\n';
if(SprawdzDate(DD,MM,RRRR)==0) cout<<"niepoprawny format daty"<<'\n';
else{
cout<<DD<<" ";
switch(MM){
case 1:cout<<"stycznia"<<" ";
break;
case 2:cout<<"lutego"<<" ";
break;
case 3:cout<<"marca"<<" ";
break;
case 4:cout<<"kwietnia"<<" ";
break;
case 5:cout<<"maja"<<" ";
break;
case 6:cout<<"czerwca"<<" ";
break;
}
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLyoKMjAgcGF6ZHppZXJuaWthIDE5ODcKbmllcG9wcmF3bnkgZm9ybWF0IGRhdHkKbmllcG9wcmF3bnkgZm9ybWF0IGRhdHkKMjkgbHV0ZWdvIDIwMDQKbmllcG9wcmF3bnkgZm9ybWF0IGRhdHkKKi8Kdm9pZCBwb2R6aWVsKHN0cmluZyBzLGludCAmREQsaW50ICZNTSxpbnQgJlJSUlIpewoJaWYocy5sZW5ndGgoKT09OCl7CgkJREQ9c3RvaShzLnN1YnN0cigwLDIpKTsKCQlNTT1zdG9pKHMuc3Vic3RyKDIsMikpOwoJCVJSUlI9c3RvaShzLnN1YnN0cig0KSk7Cgl9CgllbHNlIHtERD0tMTtNTT0tMTtSUlJSPS0xO30KfQpib29sIFNwcmF3ZHpEYXRlKGludCAmREQsaW50ICZNTSxpbnQgJlJSUlIpewoJaWYoTU09PTF8fE1NPT0zfHxNTT09NXx8TU09PTd8fE1NPT04fHxNTT09MTB8fE1NPT0xMil7CgkJaWYoREQ+MCYmREQ8PTMxKXsKCQkJaWYoUlJSUj49MTAwMCYmUlJSUjw9MjIwMCkgcmV0dXJuIHRydWU7CgkJfQoJfQoJZWxzZSBpZihNTT09NHx8TU09PTZ8fE1NPT05fHxNTT09MTEpewoJCWlmKEREPjAmJkREPD0zMCl7CgkJCWlmKFJSUlI+PTEwMDAmJlJSUlI8PTIyMDApIHJldHVybiB0cnVlOwoJCX0KCX0KCWVsc2UgaWYoTU09PTIpewoJCWlmKFJSUlIlND09MCYmUlJSUiUxMDAhPSAwfHxSUlJSJTQwMD09MCl7CgkJCWlmKEREPjAmJkREPD0yOSl7CgkJCQlpZihSUlJSPj0xMDAwJiZSUlJSPD0yMjAwKSByZXR1cm4gdHJ1ZTsKCQl9CgkJZWxzZXsKCQkJaWYoREQ+MCYmREQ8PTI4KXsKCQkJCWlmKFJSUlI+PTEwMDAmJlJSUlI8PTIyMDApIHJldHVybiB0cnVlOwoJCQl9CgkJfQoJfQp9CnJldHVybiBmYWxzZTsKfQoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglpbnQgdD0xLEREPTAsTU09MCxSUlJSPTA7CglzdHJpbmcgZGF0YTsKCQoJY2luPj50OwoJd2hpbGUodC0tKXsKCQljaW4+PmRhdGE7CgkJcG9kemllbChkYXRhLERELE1NLFJSUlIpOwoJCS8vY291dDw8ZGF0YTw8J1xuJzsKCQkvL2NvdXQ8PEREPDwiLSI8PE1NPDwiLSI8PFJSUlI8PCdcbic7CgkJLy9jb3V0PDxTcHJhd2R6RGF0ZShERCxNTSxSUlJSKTw8J1xuJzsKCQlpZihTcHJhd2R6RGF0ZShERCxNTSxSUlJSKT09MCkgY291dDw8Im5pZXBvcHJhd255IGZvcm1hdCBkYXR5Ijw8J1xuJzsKCQllbHNlewoJCQljb3V0PDxERDw8IiAiOwoJCQlzd2l0Y2goTU0pewoJCQkJY2FzZSAxOmNvdXQ8PCJzdHljem5pYSI8PCIgIjsKCQkJCWJyZWFrOwoJCQkJY2FzZSAyOmNvdXQ8PCJsdXRlZ28iPDwiICI7CgkJCQlicmVhazsKCQkJCWNhc2UgMzpjb3V0PDwibWFyY2EiPDwiICI7CgkJCQlicmVhazsKCQkJCWNhc2UgNDpjb3V0PDwia3dpZXRuaWEiPDwiICI7CgkJCQlicmVhazsKCQkJCWNhc2UgNTpjb3V0PDwibWFqYSI8PCIgIjsKCQkJCWJyZWFrOwoJCQkJY2FzZSA2OmNvdXQ8PCJjemVyd2NhIjw8IiAiOwoJCQkJYnJlYWs7CgkJCX0KCQl9Cgl9CglyZXR1cm4gMDsKfQ==