func_code_string: #include <bits/stdc++.h>   using namespace std;   template <class T>   void chmin(T &t, T f) {     if (t > f) t = f;   }   template <class T>   void chmax(T &t, T f) {     if (t < f) t = f;   }   int INF = (1 << 29);   int n, m;   int table[8][8];   void init() {}   void input() {     cin >> n >> m;     for (int i = (0); i < (n); i++)       for (int j = (0); j < (m); j++) cin >> table[i][j];   }   void solve() {     int mask = 1 << m;     int crt[1 << 8], nxt[1 << 8];     for (int i = (0); i < (mask); i++) crt[i] = INF;     crt[0] = 0;     for (int i = (0); i < (n); i++)       for (int j = (0); j < (m); j++) {         for (int k = (0); k < (mask); k++) nxt[k] = INF;         for (int k = (0); k < (mask); k++) {           if (k & 1) chmin(nxt[k >> 1], crt[k]);           if (!(k & 3) && j < m - 1) {             int add = (table[i][j] == table[i][j + 1] ? 0 : 1);             chmin(nxt[(k >> 1) | 1], crt[k] + add);           }           if (!(k & 1) && i < n - 1) {             int add = (table[i][j] == table[i + 1][j] ? 0 : 1);             chmin(nxt[(k >> 1) | (1 << (m - 1))], crt[k] + add);           }         }         swap(crt, nxt);       }     cout << crt[0] << endl;   }   int main() {     init();     input();     solve();     return 0;   }   