#include using namespace std; #define INF 1000000000 int getVal(char x) { if (x >= '0' && x <= '9') { return x - '0'; } else { return x - 'A' + 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 (char a = R - 1; a <= R + 1; a++) { for (char b = G - 1; b <= G + 1; b++) { for (char c = B - 1; c <= B + 1; c++) { if (a >= '0' && a <= 'F' && b >= '0' && b <= 'F' && c >= '0' && c <= 'F') { int cost = 0; int va = getVal(a); int vb = getVal(b); int vc = getVal(c); cost += abs(va * 16 + va - vR); cost += abs(vb * 16 + vb - vG); cost += abs(vc * 16 + vc - vB); if (cost < vmin) { vmin = cost; ans = string("#") + a + b + c; } } } } } cout << ans << ' '; } cout << '\n'; } return 0; }