#include <bits/stdc++.h>
using namespace std;
const int maxn = 505;
char mp[maxn][maxn];
int cc[maxn][maxn];
int siz[maxn * maxn];
int vis[maxn * maxn];
int inside[maxn * maxn];
int dx[4] = {-1, 1, 0, 0};
int dy[4] = {0, 0, -1, 1};
int n, k;
bool legal(int x, int y) { return x >= 1 && x <= n && y >= 1 && y <= n; }
void dfs(int x, int y, int c) {
  cc[x][y] = c;
  siz[c]++;
  for (int i = 0; i < 4; i++) {
    int p = x + dx[i];
    int q = y + dy[i];
    if (legal(p, q) && mp[p][q] == '.' && cc[p][q] == 0) dfs(p, q, c);
  }
}
void add(int x, int y, int &tans) {
  int u = cc[x][y];
  if (u != 0) {
    if (vis[u] == 0) tans += siz[u] - inside[u];
    vis[u]++;
  }
}
void minu(int x, int y, int &tans) {
  int u = cc[x][y];
  if (u != 0) {
    vis[u]--;
    if (vis[u] == 0) tans -= siz[u] - inside[u];
  }
}
int main() {
  scanf("%d%d", &n, &k);
  for (int i = 1; i <= n; i++) {
    scanf("%s", mp[i] + 1);
  }
  int color = 0;
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      if (mp[i][j] == '.' && cc[i][j] == 0) dfs(i, j, ++color);
    }
  }
  int ans = 0;
  for (int i = 1; i <= n - k + 1; i++) {
    int tans = k * k;
    for (int j = 1; j <= color; j++) {
      vis[j] = 0;
      inside[j] = 0;
    }
    for (int r = i; r < i + k; r++) {
      for (int c = 1; c < 1 + k; c++) {
        if (cc[r][c] != 0) inside[cc[r][c]]++;
      }
    }
    for (int j = i; j < i + k; j++) {
      add(j, k + 1, tans);
    }
    for (int j = 1; j <= k; j++) {
      add(i + k, j, tans);
      add(i - 1, j, tans);
    }
    ans = max(ans, tans);
    for (int z = 2; z <= n - k + 1; z++) {
      for (int j = i; j < i + k; j++) {
        minu(j, z - 2, tans);
        minu(j, z + k - 1, tans);
      }
      for (int j = z - 1; j <= z + k - 2; j++) {
        minu(i - 1, j, tans);
        minu(i + k, j, tans);
      }
      for (int j = i; j < i + k; j++) {
        inside[cc[j][z - 1]]--;
        inside[cc[j][z + k - 1]]++;
      }
      for (int j = z; j <= z + k - 1; j++) {
        add(i - 1, j, tans);
        add(i + k, j, tans);
      }
      for (int j = i; j < i + k; j++) {
        add(j, z - 1, tans);
        add(j, z + k, tans);
      }
      ans = max(ans, tans);
    }
  }
  printf("%d\n", ans);
  return 0;
}
