#include using namespace std; // Optimization stuff inline void debugMode() { #ifndef ONLINE_JUDGE freopen("debug.in", "r", stdin); #endif // ONLINE_JUDGE } inline void optimizeIt() { ios::sync_with_stdio(false); cin.tie(NULL); } // End optimization stuff inline double ABS(const int &x) { return max(x, -x); } inline bool isPrime(const int &x) { if(x == 1) return false; for(int d = 2; d * d <= x; d++) { if(x % d == 0) return false; } return true; } typedef long long int ll; typedef long double ld; const int NMax = 1e5 + 5; const int LIM = 1e6; const int MOD = 666013; inline int getNum(const char &c) { switch(c) { case '0': return 0; case '1': return 1; case '2': return 2; case '3': return 3; case '4': return 4; case '5': return 5; case '6': return 6; case '7': return 7; case '8': return 8; case '9': return 9; case 'A': return 10; case 'B': return 11; case 'C': return 12; case 'D': return 13; case 'E': return 14; case 'F': return 15; } } inline char Code(const char &a, const char &b) { int x = getNum(a); int y = getNum(b); int value = x * 16 + y; int best = 16 * 16 * 16; int ans = -1; for(int i = 0; i < 16; i++) { int compute = 16 * i + i; compute = ABS(value - compute); if(compute < best) { best = compute; ans = i; } } switch(ans) { case 0: return '0'; case 1: return '1'; case 2: return '2'; case 3: return '3'; case 4: return '4'; case 5: return '5'; case 6: return '6'; case 7: return '7'; case 8: return '8'; case 9: return '9'; case 10: return 'A'; case 11: return 'B'; case 12: return 'C'; case 13: return 'D'; case 14: return 'E'; case 15: return 'F'; } } int main(){ debugMode(); optimizeIt(); int n, m; cin >> n >> m; for(int i = 1; i <= n; i++) { for(int j = 1; j <= m; j++) { string s; cin >> s; cout << '#' << Code(s[1], s[2]) << Code(s[3], s[4]) << Code(s[5], s[6]) << ' '; } cout << "\n"; } return 0; }