# 하기 코드의 가능한 개선방향
# 2차원 리스트를 활용하고, 좌표에 조건을 걸어 해당하지 않는 것은 수행하지 않음
# try-except를 활용

def pop_reverse_st(n):
    for i in range(5):
        if reverse_st[i]:
            result.append(reverse_st[i].pop())

T = int(input())
for test_case in range(1, T+1):
    st = [list(input()) for _ in range(5)]
    reverse_st = []
    result = [] # 세로로 읽은 결과 저장 리스트
    maxLen = 0

    # stack처럼 pop해주기 위해 역순으로된 문자열 리스트 생성
    for i in range(5):
        reverse_st.append(st[i][::-1])

    # 문자열 중 가장 긴 길이
    for arr in reverse_st:
        temp = len(arr)
        if temp > maxLen:
            maxLen = temp

    # 가장 긴 길이만큼 세로순으로 pop 시도
    for i in range(maxLen):
        pop_reverse_st(5)

    ans = ''.join(result)
    print(f'#{test_case} {ans}')
