#include <iostream>
#include <cstring>
using namespace std;
int n,m;
char C[20];
int valoare(char a)
{
    if('1'<=a && a<='9')
        return a-'0';
    return a-'A'+10;
}
int conversie(char a,char b)
{
    int x,y;
    x=valoare(a);
    y=valoare(b);
    return x*16+y;
}
int modul(int x)
{
    if(x>0)
        return x;
    return -x;
}
int diferenta(char a,char b,char c,char d)
{
    int x=conversie(a, b);
    int y=conversie(c, d);
    return modul(x-y);
}
char minim(char a,char b)
{
    int rez=100000000;
    char r;
    if(a!='0')
    {
        char o;
        if(a=='A')
            o='9';
        else
            o=a-1;
        if(diferenta(a,b,o,o)<rez)
        {
            rez=diferenta(a,b,o,o);
            r=o;
        }
    }
    if(diferenta(a,b,a,a)<rez)
    {
        rez=diferenta(a,b,a,a);
        r=a;
    }
    if(a!='F')
    {
        char o;
        if(a=='9')
            o='A';
        else
            o=a+1;
        if(diferenta(a,b,o,o)<rez)
        {
            rez=diferenta(a,b,o,o);
            r=o;
        }
    }
    return r;
}
void compresie(char C[])
{
    int i;
    char c;
    char R[20];
    int k=0;
    for(i=1;i<=5;i+=2)
    {
        c=minim(C[i],C[i+1]);
        R[k++]=c;
    }
    R[k]=0;
    strcpy(C,R);
}
int i,j;
int main()
{
    cin>>n>>m;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        {
            cin>>C;
            compresie(C);
            cout<<"#"<<C<<" ";
        }
        cout<<"\n";
    }
    return 0;
}