#include <bits/stdc++.h>
using namespace std;
const int N = 111;
char a[4][N][N];
char b[N * 2][N * 2];
int n;
void fill_piece(char piece[N][N], int x, int y) {
  for (int i = x; i < x + n; ++i) {
    for (int j = y; j < y + n; ++j) {
      b[i][j] = piece[i - x][j - y] - '0';
    }
  }
}
void fill_board(const vector<int> &p) {
  fill_piece(a[p[0]], 0, 0);
  fill_piece(a[p[1]], 0, n);
  fill_piece(a[p[2]], n, 0);
  fill_piece(a[p[3]], n, n);
}
int solve(int v) {
  int res = 0;
  for (int i = 0; i < n * 2; ++i) {
    for (int j = 0; j < n * 2; ++j) {
      res += b[i][j] ^ ((i + j) & 1) ^ v;
    }
  }
  return res;
}
int solve() { return min(solve(0), solve(1)); }
int main() {
  cin >> n;
  for (int k = 0; k < 4; ++k) {
    for (int i = 0; i < n; ++i) {
      cin >> a[k][i];
    }
  }
  vector<int> p(4);
  for (int i = 0; i < 4; ++i) {
    p[i] = i;
  }
  int ans = 1e9;
  do {
    fill_board(p);
    ans = min(ans, solve());
  } while (next_permutation(p.begin(), p.end()));
  cout << ans << endl;
  return 0;
}
