#include #include using namespace std; int days[] = {31,29,31,30,31,30,31,31,30,31,30,31}; int main() { string in; long rc; int year,month,day,id; cin >> in; while (in != "end") { rc = 0; bool valid = true; if ((in.size() < 10) || (in.size() > 11)) { valid = false; } if ((in[0] <= '9')&&(in[0] >= '0')) { year = (in[0] - '0')*10; rc = (in[0] - '0'); }else{ valid = false; } if ((in[1] <= '9')&&(in[1] >= '0')) { year += (in[1] - '0'); rc *= 10; rc += (in[1] - '0'); }else{ valid = false; } if ((year < 20) && (year > 9)) { valid = false; } if ((in[2] <= '9')&&(in[2] >= '0')) { month = (in[2] - '0')*10; rc *= 10; rc += (in[2] - '0'); }else{ valid = false; } if ((in[3] <= '9')&&(in[3] >= '0')) { month += (in[3] - '0'); rc *= 10; rc += (in[3] - '0'); }else{ valid = false; } if (!(((month%50) > 0) && ((month%50) < 13))) { valid = false; } if ((in[4] <= '9')&&(in[4] >= '0')) { day = (in[4] - '0')*10; rc *= 10; rc += (in[4] - '0'); }else{ valid = false; } if ((in[5] <= '9')&&(in[5] >= '0')) { day += (in[5] - '0'); rc *= 10; rc += (in[5] - '0'); }else{ valid = false; } if (!((day >= 1) && (day <= days[(month%50)-1]))) { valid = false; } if (in[6] != '/') { valid = false; } int j = 0; id = 0; for (unsigned int i = 7; i < (in.size()); i++) { if ((in[i] <= '9')&&(in[i] >= '0')) { j++; id *= 10; id += (in[i] - '0'); rc *= 10; rc += (in[i] - '0'); }else{ valid = false; } } if (((rc%11) != 0)&&(j==4)) { valid = false; } if ((year >= 54)&&(j!=4)) { valid = false; } if ((year > 9)&&(year < 54)&&(j!=3)) { valid = false; } if (!((((year % 4) == 0) && ((year % 100) != 0)) || ((year % 400) == 0))) { if ((month == 2) && (day == 29)) { valid = false; } } if (valid) { if (month >= 50) { cout << "girl" << endl; }else{ cout << "boy" << endl; } }else{ cout << "invalid" << endl; } cin >> in; } }