#include <bits/stdc++.h>
using namespace std;
void ga(int N, int *A) {
  for (int i(0); i < N; i++) scanf("%d", A + i);
}
char s[51][51];
int N, dp[51][51][51][51];
int dyn(int x, int y, int X, int Y) {
  if (x > X || y > Y || x >= N || y >= N || X < 0 || Y < 0) return 0;
  if (x == X && y == Y && s[x][y] ^ 35) return 0;
  int &v = dp[x][y][X][Y], I = max(X - x, Y - y);
  if (~v) return v;
  v = I + 1;
  for (int k(x); k < X; k++) v = min(v, dyn(x, y, k, Y) + dyn(k + 1, y, X, Y));
  for (int k(y); k < Y; k++) v = min(v, dyn(x, y, X, k) + dyn(x, k + 1, X, Y));
  return v;
}
int main(void) {
  scanf("%d", &N), (memset(dp, -1, sizeof(dp)));
  for (int i(0); i < N; i++) scanf("%s", s[i]);
  printf("%d\n", dyn(0, 0, N - 1, N - 1));
  return 0;
}
