Problem Description

Little Q’s clock is alarming! It’s time to get up now! However, after reading the time on the clock, Little Q lies down and starts sleeping again. Well, he has 5 alarms, and it’s just the first one, he can continue sleeping for a while.

Little Q’s clock uses a standard 7-segment LCD display for all digits, plus two small segments for the ”:”, and shows all times in a 24-hour format. The ”:” segments are on at all times.

Your job is to help Little Q read the time shown on his clock.

Input

The first line of the input contains an integer T(1≤T≤1440), denoting the number of test cases.

In each test case, there is an 7×21 ASCII image of the clock screen.

All digit segments are represented by two characters, and each colon segment is represented by one character. The character ”X” indicates a segment that is on while ”.” indicates anything else. See the sample input for details.

Output

For each test case, print a single line containing a string t in the format of HH:MM, where t(00:00≤t≤23:59), denoting the time shown on the clock.

Sample Input


.XX…XX…..XX…XX. 
X..X….X……X.X..X 
X..X….X.X….X.X..X 
……XX…..XX…XX. 
X..X.X….X….X.X..X 
X..X.X………X.X..X 
.XX…XX…..XX…XX.

Sample Output

02:38

题目大意:

这就是给你一个7*21的字符矩阵,看它打印的时间是多少。下面是0—9的打印方法。每个数字占4个字符,数字间空有一格,方便区分。 
.xx. …. .xx. .xx. …. .xx. .xx. .xx. .xx. .xx. 
x..x …x …x …x x..x x… x… …x x..x x..x 
x..x …x …x …x x..x x… x… …x x..x x..x 
…. …. .xx. .xx. .xx. .xx. .xx. …. .xx. .xx. 
x..x …x x… …x …x …x x..x …x x..x …x 
x..x …x x… …x …x …x x..x …x x..x …x 
.xx. …. .xx. .xx. …. .xx. .xx. …. .xx. .xx.

c++

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char m[8][25];
int sz(int x)
{
    if(m[3][x]=='X'&&m[3][x+1]=='X')
    {
        if(m[2][x-1]=='.'&&m[1][x-1]=='.')
        {
            if(m[4][x-1]=='.'&&m[5][x-1]=='.')
                return(3);
            else return(2);
        }
        else
        {
            if(m[2][x+2]=='.'&&m[1][x+2]=='.')
            {
                if(m[4][x-1]=='.'&&m[5][x-1]=='.')
                    return(5);
                else return(6);
            }
            else
            {
                if(m[4][x-1]=='.'&&m[5][x-1]=='.')
                {
                    if(m[6][x]=='.'&&m[6][x+1]=='.')
                        return(4);
                    else return(9);
                }
                else return(8);
            }
        }
    }
    else
    {
        if(m[6][x]=='.'&&m[6][x+1]=='.')
        {
            if(m[0][x]=='.'&&m[0][x+1]=='.')
                return(1);
            else return(7);
        }
        else return(0);
    }
}
int main()
{
    int a,b,c,d,e;
    cin>>a;
    getchar();
    while(a--)
    {
        for(b=0;b<7;b++)
        {
            for(c=0;c<21;c++)
                scanf("%c",&m[b][c]);
            getchar();
        }
        b=sz(1);
        c=sz(6);
        d=sz(13);
        e=sz(18);
        printf("%d%d:%d%d\n",b,c,d,e);
    }
    return 0;
}