#include #include #include #include //#include using namespace std; typedef unsigned long int type; inline void invalid() { cout << "invalid" << endl; } inline bool digitsOK(const string & input) { for(int i = input.size(); i--;) if((i != 6) && !isdigit(input[i])) return false; return true; } inline int getYear(const string & input) { return (input[0] - '0')*10 + (input[1] - '0'); } inline int getMonth(const string & input) { int digit1 = input[2] - '0'; int digit2 = input[3] - '0'; if(digit1 == 5 || digit1 == 6) digit1 -= 5; return digit1 * 10 + digit2; } inline int getDay(const string & input) { return (input[4] - '0')*10 + (input[5] - '0'); } inline bool lengthOK(const string & input) { const int year = getYear(input); if(year >= 20 && year <= 53) return input.size() == 10; else if((year >= 54 && year <= 99) || (year >= 00 && year <= 9)) return input.size() == 11; else return false; } inline bool dateValid(const string & input) { const int year = getYear(input); const int month = getMonth(input); const int day = getDay(input); bool longFebruary = (year % 4) == 0; switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return (day <= 31 && day >= 1); break; case 4: case 6: case 9: case 11: return (day <= 30 && day >= 1); break; case 2: if(longFebruary) return (day <= 29 && day >= 1); else return (day <= 28 && day >= 1); break; default: return false; break; } } inline bool moduloOK(const string & input) { if(input.size() != 11) return true; long num = 0; for(unsigned int i = 0; i < input.size(); i++) if(isdigit(input[i])) { const int digit = input[i] - '0'; num = (digit + num * 10) % 11; } return ((num % 11) == 0); } int main(){ string input; while(getline(cin, input), input != "end") if((input.size() != 11) && (input.size() != 10)) invalid(); else if(input[6] != '/') invalid(); else if(!digitsOK(input)) invalid(); else if(!lengthOK(input)) invalid(); else if(!dateValid(input)) invalid(); else if(!moduloOK(input)) invalid(); else { switch(input[2]) { case '0': case '1': cout << "boy" << endl; break; case '5': case '6': cout << "girl" << endl; break; default: invalid(); break; } } return 0; }