#include <iostream>
#include <fstream>
#include <string.h>
#include <math.h>
using namespace std;
ifstream f("date.in");
ofstream g("date.out");
int main()
{   int n,m,i,a,b,fix,fix1,fix2;
    char *p,s[160000];
    f >> n >> m;
    for(i=1;i<=n;i++, g << '\n')
        {f.get();
        f.get(s,160000);
        strcat(s, " ");
        p=strtok(s, " ");
        while(p)
            {g << '#';

            if(p[1]>='0' and p[1]<='9') a=p[1]-'0';
            else a=10+p[1]-'A';
            if(p[2]>='0' and p[2]<='9') b=p[2]-'0';
            else b=10+p[2]-'A';
            fix=16*a+b;
            fix1=16*a+a; fix2=16*(a+1)+a+1;
            if(fabs(fix-fix1)<=fabs(fix2-fix))
                g <<p[1];
            else g << char(p[1]+1);

            if(p[3]>='0' and p[3]<='9') a=p[3]-'0';
            else a=10+p[3]-'A';
            if(p[4]>='0' and p[4]<='9') b=p[4]-'0';
            else b=10+p[4]-'A';
            fix=16*a+b;
            fix1=16*a+a; fix2=16*(a+1)+a+1;
            if(fabs(fix-fix1)<=fabs(fix2-fix))
                g <<p[3];
            else g << char(p[3]+1);

            if(p[5]>='0' and p[5]<='9') a=p[5]-'0';
            else a=10+p[5]-'A';
            if(p[6]>='0' and p[6]<='9') b=p[6]-'0';
            else b=10+p[6]-'A';
            fix=16*a+b;
            fix1=16*a+a; fix2=16*(a+1)+a+1;
            if(fabs(fix-fix1)<=fabs(fix2-fix))
                g <<p[5];
            else g << char(p[5]+1);

            g << ' ';
            p=strtok(NULL, " ");
            }

        }
    return 0;
}