#include "bits/stdc++.h" using namespace std; #define DEBUG(x) cout<<#x<<": "< #define vl vector #define vii vector< vector > #define vll vector< vector > #define vs vector #define pii pair #define pis pair #define psi pair #define pll pair const int inf = 1000000001; const ll INF = 2e18 * 2; #define MOD 1000000007 #define mod 1000000009 #define pi 3.14159265358979323846 #define Sp(p) cout<> n; vector > > s(4, vector >(n, vector(n))); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { cin >> s[0][i][j]; s[1][i][j] = s[2][i][j] = s[3][i][j] = s[0][i][j]; } } for (i = 0; i < n; i++) { reverse(s[1][i].begin(), s[1][i].end()); reverse(s[3][i].begin(), s[3][i].end()); } for (i = 0; i < n; i++) { for (j = 0; j < n / 2; j++) { swap(s[2][i][j], s[2][i][n - 1 - j]); swap(s[3][i][j], s[3][i][n - 1 - j]); } } int ans = 0; bool flag = true; for (i = 0; i < n; i++) { if (s[0][0][i] == '#' || s[0][n - 1][i] == '#' || s[0][i][0] == '#' || s[0][i][n - 1] == '#') { flag = false; break; } } if (flag) { ans = 4; } for (i = 0; i < 4; i++) { int cnt = 0; for (j = 0; j < n; j++) { bool flag = true; for (k = 1; k < n - 1; k++) { if (s[i][j][k] == '#') { flag = false; break; } } if (flag && (s[i][j][0] == '.' || s[i][j][n - 1] == '.')) { cnt++; } } ans = max(ans, cnt); //cout << ans << endl; } for (i = 0; i < 4; i++) { int cnt = 0; for (j = 0; j < n; j++) { bool flag = true; for (k = 1; k < n - 1; k++) { if (s[i][k][j] == '#') { flag = false; break; } } if (flag && (s[i][0][j] == '.' || s[i][n - 1][j] == '.')) { cnt++; } } ans = max(ans, cnt); //cout << ans << endl; } for (i = 0; i < 4; i++) { int cnt = 0; bool flag = true; for (j = 0; j < n - 1; j++) { if (s[i][j][n - 1] == '#') { flag = false; break; } } if (flag) { cnt++; for (j = 0; j < n - 1; j++) { bool flag2 = true; for (k = 0; k < n - 1; k++) { if (s[i][k][j] == '#') { flag2 = false; break; } } if (flag2) { cnt++; } } bool flag3 = true; for (k = 1; k < n - 1; k++) { if (s[i][k][n - 1] == '#') { flag3 = false; break; } } if (flag3 && (s[i][0][n - 1] == '.' || s[i][n - 1][n - 1] == '.')) { cnt++; } ans = max(ans, cnt); } //cout << ans << endl; } for (i = 0; i < 4; i++) { int cnt = 0; bool flag = true; for (j = 0; j < n - 1; j++) { if (s[i][n - 1][j] == '#') { flag = false; break; } } if (flag) { cnt++; for (j = 0; j < n - 1; j++) { bool flag2 = true; for (k = 0; k < n - 1; k++) { if (s[i][j][k] == '#') { flag2 = false; break; } } if (flag2) { cnt++; } } bool flag3 = true; for (k = 1; k < n - 1; k++) { if (s[i][n - 1][k] == '#') { flag3 = false; break; } } if (flag3 && (s[i][n - 1][0] == '.' || s[i][n - 1][n - 1] == '.')) { cnt++; } ans = max(ans, cnt); } //cout << ans << endl; } cout << ans << endl; }