#include <bits/stdc++.h>
const int maxn = 500000 + 5;
using namespace std;
int dx[] = {-1, 0, 1, 0};
int dy[] = {0, 1, 0, -1};
int mps[505][505];
char maps[505][505];
bool vis[505][505];
int cnt[505 * 505];
int sum[505 * 505], sumx[505][505];
int idx, ans, temp;
int m, k;
void dfs(int x, int y) {
  mps[x][y] = idx;
  cnt[idx]++;
  vis[x][y] = true;
  for (int i = 0; i < 4; i++) {
    int xx = dx[i] + x;
    int yy = dy[i] + y;
    if (xx >= 1 && xx <= m && yy >= 1 && yy <= m && !vis[xx][yy] &&
        maps[xx][yy] == '.') {
      dfs(xx, yy);
    }
  }
}
bool inmaps(int x, int y) { return x >= 1 && x <= m && y >= 1 && y <= m; }
void add(int x, int y) {
  if (!inmaps(x, y)) return;
  if (maps[x][y] == '.') {
    int id = mps[x][y];
    sum[id]++;
    if (sum[id] == 1) {
      temp += cnt[id];
    }
  }
}
void del(int x, int y) {
  if (!inmaps(x, y)) return;
  if (maps[x][y] == '.') {
    int id = mps[x][y];
    sum[id]--;
    if (sum[id] == 0) temp -= cnt[id];
  }
}
int main() {
  memset(vis, false, sizeof(vis));
  idx = 0;
  scanf("%d%d", &m, &k);
  for (int i = 1; i <= m; i++) scanf("%s", maps[i] + 1);
  for (int i = 1; i <= m; i++)
    for (int j = 1; j <= m; j++) {
      if (maps[i][j] == '.' && !vis[i][j]) {
        dfs(i, j);
        idx++;
      }
    }
  for (int i = 1; i <= m; i++) {
    for (int j = 1; j <= m; j++) {
      sumx[i][j] = sumx[i][j - 1] + sumx[i - 1][j] - sumx[i - 1][j - 1] +
                   (maps[i][j] == 'X' ? 1 : 0);
    }
  }
  ans = k * k;
  for (int i = 1; i <= m - k + 1; i++) {
    memset(sum, 0, sizeof(sum));
    temp = 0;
    for (int j = i; j <= i + k - 1; j++) {
      for (int p = 1; p <= k + 1; p++) add(j, p);
    }
    for (int j = 1; j <= k; j++) {
      add(i - 1, j);
      add(i + k, j);
    }
    int pre = sumx[i + k - 1][k] - sumx[i - 1][k];
    temp += pre;
    ans = max(temp, ans);
    for (int j = k + 2; j <= m + 1; j++) {
      for (int p = i; p <= i + k - 1; p++) {
        add(p, j);
        del(p, j - k - 2);
      }
      add(i + k, j - 1);
      add(i - 1, j - 1);
      del(i + k, j - k - 1);
      del(i - 1, j - k - 1);
      temp -= pre;
      pre = sumx[i + k - 1][j - 1] - sumx[i + k - 1][j - k - 1] -
            sumx[i - 1][j - 1] + sumx[i - 1][j - k - 1];
      temp += pre;
      ans = max(temp, ans);
    }
  }
  printf("%d\n", ans);
}
