#include <bits/stdc++.h>
using namespace std;
void chmin(int& a, int b) { a = min(a, b); }
int main() {
  int N;
  cin >> N;
  string S[50];
  for (int i = 0; i < N; i++) cin >> S[i];
  static int dp[51][51][51][51];
  for (int d1 = 1; d1 <= N; d1++)
    for (int d2 = 1; d2 <= N; d2++) {
      for (int x1 = 0; x1 + d1 <= N; x1++) {
        int x2 = x1 + d1;
        for (int y1 = 0; y1 + d2 <= N; y1++) {
          int y2 = y1 + d2;
          int& target = dp[x1][x2][y1][y2];
          if (d1 == 1 && d2 == 1 && S[x1][y1] == '.') {
            target = 0;
            continue;
          }
          target = max(d1, d2);
          for (int x3 = x1 + 1; x3 < x2; x3++)
            chmin(target, dp[x1][x3][y1][y2] + dp[x3][x2][y1][y2]);
          for (int y3 = y1 + 1; y3 < y2; y3++)
            chmin(target, dp[x1][x2][y1][y3] + dp[x1][x2][y3][y2]);
        }
      }
    }
  cout << dp[0][N][0][N] << endl;
  return 0;
}
