#include <iostream>
using namespace std;

int n,m,a,mn;
int val[] = {0,17,34,51,68,85,102,119,136,153,170,187,204,221,238,255};
string H = "0123456789ABCDEF";
char s[20],rez[10];
int _abs(int x)
{
    if (x<0)
        return -x;
    return x;
}
int main()
{
    cin>>n>>m;
    rez[0] = '#';
    for (int i=1;i<=n;i++,cout<<'\n')
        for (int j=1;j<=m;j++)
        {
            cin>>s;
            for (int k=1;k<=6;k+=2)
            {
                if (s[k]>='A' && s[k]<='F')
                    a = (s[k] - 'A'+10)*16;
                else
                    a = (s[k] - '0')*16;
                if (s[k+1]>='A' && s[k+1]<='F')
                    a += s[k+1]-'A' + 10;
                else
                    a += s[k+1] - '0';
                mn = 1000;
                for (int k2=0;k2<16;k2++)
                {
                    if (_abs(a-val[k2])<mn)
                    {
                        mn = _abs(a-val[k2]);
                        rez[(k+1)/2] = H[k2];
                    }
                }
            }
            cout<<rez<<' ';
        }

    return 0;
}