import sys

sys.stdin=open("input.txt", "r")

if __name__=="__main__":

    check_data = list(map(str, "ABCDEFGHIKLMNOPQRSTUVWXYZ"))

    plain_data = list(map(str, input()))
    key_data =list(map(str, input()))

    board_data=[]

    for d in key_data:
        if d not in board_data:
            board_data.append(d)
            del(check_data[check_data.index(d)])

    # print(plain_data)
    # print(key_data)
    # print(board_data)

    # print(check_data)

    # for d in key_data:
    #     del( check_data[check_data.index(d)])
        
    board_data+=check_data

    # print(len(board_data))


    divide_data=[]
    ptr =0
    while ptr< len(plain_data):

        if ptr == len(plain_data)-1:
            divide_data.append([plain_data[ptr], 'X'])
            break

        if plain_data[ptr]==plain_data[ptr+1]:
            if plain_data[ptr]=='X':
                divide_data.append([plain_data[ptr], 'Q'])
            else:
                divide_data.append([plain_data[ptr],'X'])
            ptr+=1
        else:
            divide_data.append([plain_data[ptr],plain_data[ptr+1]])
            ptr+=2
    
    # print(divide_data)
    ans=[]
    for A,B in divide_data:

        A=board_data.index(A)
        B=board_data.index(B)
        # print("num",A, B)

        a_r, a_c = A//5, A%5
        b_r, b_c = B//5, B%5


        if a_r == b_r:
            a_c = (a_c+1)%5
            b_c = (b_c+1)%5
        elif a_c == b_c:
            a_r = (a_r+1)%5
            b_r = (b_r+1)%5
        else:
            a_c, b_c = b_c, a_c

        numA = (5*a_r)+a_c
        numB = (5*b_r)+b_c
        # print(numA)
        # print(numB)
        ans.extend([board_data[numA], board_data[numB]])

    
    print(''.join(ans))








_________________________________________________________________________________________________


import sys
from collections import deque

sys.stdin=open("input.txt","r")


if __name__=="__main__":

    N = int(input())

    cars =[]

    for i in range(N):
        a,b = map(str, input().split())
        cars.extend([[i, int(a), b]])
    
    # print(*cars, sep="\n")

    time =0
    finish_time=[-1]*N
    q = [deque() for _ in range(4)]
    ptr =0
    while True:
        while ptr<N and cars[ptr][1] == time:
            if cars[ptr][2]=='A':
                q[0].append(cars[ptr][0])
            elif cars[ptr][2]=='B':
                q[1].append(cars[ptr][0])
            elif cars[ptr][2]=='C':
                q[2].append(cars[ptr][0])
            elif cars[ptr][2]=='D':
                q[3].append(cars[ptr][0])
            ptr+=1
        if (len(q[0])>=1 and len(q[1])>=1 and len(q[2])>=1 and len(q[3])>=1) or \
            (ptr>=N and len(q[0])==0 and len(q[1])==0 and len(q[2])==0 and len(q[3])==0):
            break
        pop_list=[]
        
        for c in range(4):
            if len(q[c])>0 and len(q[(c+3)%4])==0:
                pop_list.append(c)
        
        
        
        for p in pop_list:
            finish_time[q[p].popleft()]=time

        time+=1
        # print(q)
    
    

    print(*finish_time, sep='\n')







_________________________________________________________________________________________________



import sys

sys.stdin=open("input.txt", "r")

dirs = ([-1,0],[0,-1],[1,0],[0,1])


if __name__ == "__main__":

    T = int(input())

    for tc in range(1,T+1):
        N,M,K = map(int, input().split())

        R = (K*2)+N
        C = (K*2)+M

        stem = [[0]*C for _ in range(R)]
        state = [[0]*C for _ in range(R)]
        cnt = [[0]*C for _ in range(R)]

        # print(*stem, sep='\n')

        for i in range(N):
            A = list(map(int, input().split()))
            for j in range(M):
                if A[j]:
                    stem[K+i][K+j]=A[j]
                    state[K+i][K+j]=2
                    cnt[K+i][K+j]=A[j]
        # print()
        # print(*stem, sep='\n')

        for _ in range(K):
            activate=[]
            for i in range(R):
                for j in range(C):
                    if state[i][j]>0:
                        if state[i][j]==3:
                            state[i][j]=2
                        cnt[i][j]-=1
                        if cnt[i][j]==0:
                            if state[i][j]==1:
                                state[i][j]=-1
                            elif state[i][j]==2:
                                state[i][j]=1
                                cnt[i][j]=stem[i][j]
                                activate.append([i,j])
            
            for r, c in activate:
                for d in dirs:
                    nPos = [r+d[0], c+d[1]]
                    #if 0<=nPos[0]<R and 0<=nPos[1]<C
                    if state[nPos[0]][nPos[1]]==0 or state[nPos[0]][nPos[1]]==3:
                        if stem[r][c]>stem[nPos[0]][nPos[1]]:
                            stem[nPos[0]][nPos[1]] = stem[r][c]
                            state[nPos[0]][nPos[1]]=3
                            cnt[nPos[0]][nPos[1]] = stem[r][c]

        ans =0
        for i in range(R):
            for j in range(C):
                if state[i][j]>0:
                    ans+=1
        
        print(f'#{tc} {ans}')

            








        








#1 22
#2 36
#3 90
#4 164
#5 712














_________________________________________________________________________________________________

import sys

sys.stdin=open("input.txt" ,"r")

dirs = ([-1,0],[0,-1],[1,0],[0,1])



if __name__=="__main__":

    T = int(input())

    for tc in  range(1,T+1):
        ans =0
        N,M,K = map(int, input().split())

        R = (2*K)+N
        C = (2*K)+M

        stem = [[0]*C for _ in range(R)]
        state = [[0]*C for _ in range(R)]
        cnt = [[0]*C for _ in range(R)]

        for i in range(N):
            A = list(map(int, input().split()))
            for j in range(M):
                if A[j]:
                    stem[K+i][K+j]=A[j]
                    state[K+i][K+j]=1
                    cnt[K+i][K+j]=A[j]
                    ans+=1
        time=0
        while True:
            spread = []

            time+=1
            for i in range(R):
                for j in range(C):
                    if state[i][j]>0:
                        if state[i][j]==4:
                            state[i][j]=2
                            spread.append([i,j])
                        elif state[i][j]==3:
                            state[i][j]=1

                        cnt[i][j]-=1

                        if cnt[i][j]==0:
                            if state[i][j]==1:
                                state[i][j]=4
                                cnt[i][j]=stem[i][j]
                            elif state[i][j]==2:
                                state[i][j]=-1
                                ans-=1

            for r,c in spread:
                for d in dirs:
                    nPos = [r+d[0], c+d[1]]
                    if state[nPos[0]][nPos[1]]==0 or state[nPos[0]][nPos[1]]==3:
                        if stem[r][c]>stem[nPos[0]][nPos[1]]:
                            if state[nPos[0]][nPos[1]]==0:
                                ans+=1
                            state[nPos[0]][nPos[1]]=3
                            stem[nPos[0]][nPos[1]] = stem[r][c]
                            cnt[nPos[0]][nPos[1]] = stem[r][c]
            if time ==K:
                break
        # ans =0
        # # print(*state, sep='\n')
        # # print("time : ", time)
        # for i in range(R):
        #     for j in range(C):
        #         # print(f'{state[i][j]:2}', end=' ')
        #         if state[i][j]>0:
        #             ans+=1
        #     # print()

        print(f'#{tc} {ans}')
                            








