#include <bits/stdc++.h>
int n, m;
char screen[2010][2010];
int m1, m2, n1, n2;
int main() {
  scanf("%d %d", &n, &m);
  for (int i = 0; i < n; ++i) {
    scanf("%s", screen[i]);
  }
  m1 = m, m2 = -1;
  n1 = n, n2 = -1;
  for (int r = 0; r < n; ++r) {
    for (int c = 0; c < m; ++c) {
      if (screen[r][c] == '.') continue;
      if (r > n2) n2 = r;
      if (r < n1) n1 = r;
      if (c > m2) m2 = c;
      if (c < m1) m1 = c;
    }
  }
  int l = ((m2 - m1) > (n2 - n1) ? (m2 - m1) : (n2 - n1)) + 1;
  if (l > m || l > n) {
    puts("-1");
    return 0;
  }
  if (n1 == n2) {
    bool middle = false;
    for (int c = m1 + 1; c < m2; ++c) {
      if (screen[n1][c] == 'w') middle = true;
    }
    if (middle) {
      if (n1 - l + 1 >= 0)
        n1 = n2 - l + 1;
      else if (n1 + l - 1 < n)
        n2 = n1 + l - 1;
      else {
        puts("-1");
        return 0;
      }
    } else {
      if (n1 + l - 1 >= n) n1 = n - l;
      n2 = n1 + l - 1;
    }
  } else if (m1 == m2) {
    bool middle = false;
    for (int r = n1 + 1; r < n2; ++r) {
      if (screen[r][m1] == 'w') middle = true;
    }
    if (middle) {
      if (m1 - l + 1 >= 0)
        m1 = m2 - l + 1;
      else if (m1 + l - 1 < m)
        m2 = m1 + l - 1;
      else {
        puts("-1");
        return 0;
      }
    } else {
      if (m1 + l - 1 >= m) m1 = m - l;
      m2 = m1 + l - 1;
    }
  } else {
    if (n2 - n1 + 1 == l) {
      bool left = false, right = false;
      for (int r = n1 + 1; r < n2; ++r) {
        if (screen[r][m1] == 'w') left = true;
        if (screen[r][m2] == 'w') right = true;
      }
      if (left && right && m2 - m1 + 1 != l) {
        puts("-1");
        return 0;
      }
      if (left && m1 + l > m) {
        puts("-1");
        return 0;
      }
      if (right && m2 - l < -1) {
        puts("-1");
        return 0;
      }
      if (left) m2 = m1 + l - 1;
      if (right) m1 = m2 - l + 1;
      if (!left && !right) {
        if (m1 + l > m) {
          m1 = m - l;
        }
        m2 = m1 + l - 1;
      }
    } else {
      bool top = false, bottom = false;
      for (int c = m1 + 1; c < m2; ++c) {
        if (screen[n1][c] == 'w') top = true;
        if (screen[n2][c] == 'w') bottom = true;
      }
      if (top && bottom && n2 - n1 + 1 != l) {
        puts("-1");
        return 0;
      }
      if (top && n1 + l > n) {
        puts("-1");
        return 0;
      }
      if (bottom && n2 - l < -1) {
        puts("-1");
        return 0;
      }
      if (top) n2 = n1 + l - 1;
      if (bottom) n1 = n2 - l + 1;
      if (!top && !bottom) {
        if (n1 + l > n) {
          n1 = n - l;
        }
        n2 = n1 + l - 1;
      }
    }
  }
  for (int r = n1 + 1; r < n2; ++r) {
    for (int c = m1 + 1; c < m2; ++c) {
      if (screen[r][c] == 'w') {
        puts("-1");
        return 0;
      }
    }
  }
  for (int r = n1; r <= n2; ++r) {
    if (screen[r][m1] != 'w') screen[r][m1] = '+';
    if (screen[r][m2] != 'w') screen[r][m2] = '+';
  }
  for (int c = m1; c <= m2; ++c) {
    if (screen[n1][c] != 'w') screen[n1][c] = '+';
    if (screen[n2][c] != 'w') screen[n2][c] = '+';
  }
  for (int i = 0; i < n; ++i) printf("%s\n", screen[i]);
}
