#include #include #include using namespace std ; char digit[10][7][6] = { { "+---+", "| |", "| |", "+ +", "| |", "| |", "+---+" }, { " +", " |", " |", " +", " |", " |", " +" }, { "+---+", " |", " |", "+---+", "| ", "| ", "+---+" }, { "+---+", " |", " |", "+---+", " |", " |", "+---+" }, { "+ +", "| |", "| |", "+---+", " |", " |", " +" }, { "+---+", "| ", "| ", "+---+", " |", " |", "+---+" }, { "+---+", "| ", "| ", "+---+", "| |", "| |", "+---+" }, { "+---+", " |", " |", " +", " |", " |", " +" }, { "+---+", "| |", "| |", "+---+", "| |", "| |", "+---+" }, { "+---+", "| |", "| |", "+---+", " |", " |", "+---+" } } ; void maybe(string s, int p, int row, bool c[]) { char * segment ; for (int d = 0 ; d < 10 ; d++) { segment = digit[d][row] ; for (int i = 0 ; i < 5 ; i++) { if (s[p + i] == '.') continue ; if (c[d]) c[d] = (s[p + i] == segment[i]) ; } } } int main() { int row = 0 ; bool c[4][10] ; string line ; while (getline(cin, line) && (line != "end")) { row = 0 ; for (int i = 0 ; i < 4 ; i++) for (int j = 0 ; j < 10 ; j++) c[i][j] = true ; do { maybe(line, 0, row, c[0]) ; maybe(line, 7, row, c[1]) ; maybe(line, 17, row, c[2]) ; maybe(line, 24, row, c[3]) ; row++ ; } while (getline(cin, line) && line.length()) ; cin.get() ; bool amb = false ; int hours = -1, minutes = -1 ; for (int i = 0 ; i < 10 && !amb; i++) { if (c[0][i]) { if (i > 2) { amb = (hours == -1) ; break ; } else { for (int j = 0 ; j < 10; j++) { if (c[1][j]) { if (hours != -1) { if (i * 10 + j < 24) { amb = true ; break ; } } else hours = i * 10 + j ; } } } } } for (int i = 0 ; i < 10 && !amb; i++) { if (c[2][i]) { if (i > 5) { amb = (minutes == -1) ; } else { for (int j = 0 ; j < 10; j++) { if (c[3][j]) { if (minutes != -1) { amb = true ; break ; } else minutes = i * 10 + j ; } } } } } if (amb) { cout << "ambiguous" << endl ; } else { cout << setw(2) << setfill('0') << hours << ":" << setw(2) << setfill('0') << minutes << endl ; } } cout << "end" << endl ; return 0 ; }