#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
char R[100100],H[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

int n(char c){
    if(c >= '0' && c <= '9') return c-'0';
    else return c-'A'+10;
}

int V[100100],N,M;
string S;
int main(){
    cin >> N >> M;
    
    for(int i = 0;i<100010;i++) V[i] = INT_MAX;
    
    for(int i = 0;i<16;i++)
        for(int j = 0;j<16;j++)
            for(int k = 0;k<16;k++)
            if(V[i*16+j] > abs(i*16 + j - k*16-k)) V[i*16+j] = abs(i*16 + j - k*16-k), R[i*16+j] = H[k];
    
    for(int i = 1;i<=N;i++)
        for(int j = 1;j<=M;j++){
            cin >> S;
            cout << '#';
            for(int l = 1;l<S.length();l+=2) cout << R[n(S[l])*16+n(S[l+1])];
            cout << "\n "[j<M];
        }
}