#include using namespace std; #define INF 1000000000 int getVal(char x) { if (x >= '0' && x <= '9') { return x - '0'; } else { return x - 'A' + 10; } } char getCh(int x) { if (x < 10) { return '0' + x; } else { return 'A' + x - 10; } } int main() { // assert(freopen("compress.in", "r", stdin)); // assert(freopen("compress.out", "w", stdout)); cin.sync_with_stdio(false); int N, M; cin >> N >> M; string s; for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { cin >> s; char R = s[1]; char G = s[3]; char B = s[5]; int vR = getVal(s[1]) * 16 + getVal(s[2]); int vG = getVal(s[3]) * 16 + getVal(s[4]); int vB = getVal(s[5]) * 16 + getVal(s[6]); int vmin = INF; string ans = ""; for (int a = getVal(R) - 1; a <= getVal(R) + 1; a++) { for (int b = getVal(G) - 1; b <= getVal(G) + 1; b++) { for (int c = getVal(B) - 1; c <= getVal(B) + 1; c++) { if (a >= 0 && a <= 15 && b >= 0 && b <= 15 && c >= 0 && c <= 15) { int cost = 0; int va = a; int vb = b; int vc = c; cost += abs(va * 16 + va - vR); cost += abs(vb * 16 + vb - vG); cost += abs(vc * 16 + vc - vB); if (cost < vmin) { vmin = cost; char chA = getCh(a); char chB = getCh(b); char chC = getCh(c); ans = string("#") + chA + chB + chC; } } } } } cout << ans << ' '; } cout << '\n'; } return 0; }