fun main(args: Array<String>) {
    val (h, w) = readLine()!!.split(' ').map { it.toInt() }
    val grid = (0 until h).map {
        readLine()!!
    }

    val l = (0 until h).map { IntArray(w) { 0 } }
    val r = (0 until h).map { IntArray(w) { 0 } }
    val u = (0 until h).map { IntArray(w) { 0 } }
    val d = (0 until h).map { IntArray(w) { 0 } }

    for (i in (0 until h))
        for (j in (0 until w)) {
            // L
            if (grid[i][j] != '#') {
                l[i][j] = if (j == 0) {
                    1
                } else {
                    l[i][j - 1] + 1
                }
            }

            // R
            val j2 = w - 1 - j
            if (grid[i][j2] != '#') {
                r[i][j2] = if (j2 == w - 1) {
                    1
                } else {
                    r[i][j2 + 1] + 1
                }
            }

            // U
            if (grid[i][j] != '#') {
                u[i][j] = if (i == 0) {
                    1
                } else {
                    u[i - 1][j] + 1
                }
            }

            // D
            val i2 = h - 1 - i
            if (grid[i2][j] != '#') {
                d[i2][j] = if (i2 == h - 1) {
                    1
                } else {
                    d[i2 + 1][j] + 1
                }
            }
        }

    var ans = 0

    for (i in (0 until h))
        for (j in (0 until w)) {
            ans = Math.max(ans, l[i][j] + r[i][j] + u[i][j] + d[i][j] - 3)
        }

    println(ans)
}
