'use strict'

const INF = 900719925474099;
function mapint(temp){
    return temp.split(' ').map((v)=>parseInt(v));
}
const MOD = 1000000007;

function Main(input){
    let temp = input.trim().split('\n');
    let h = mapint(temp[0])[0];
    let w = mapint(temp[0])[1];

    let m = new Array(h+2);
    m[0] = '#'.repeat(w+2);
    m[h+1] = '#'.repeat(w+2);
    for(let i=1;i<=h;i++){
        m[i]='#' + temp[i] + '#';
    }

    let yoko = [...new Array(h+2)].map(()=>new Array(w+2).fill(0));

    for(let i=1;i<=h;i++){
        for(let j=1;j<=w;j++){
            if(m[i][j]=='.') yoko[i][j] = yoko[i][j-1]+1;
        }
    }
    // for(let i=h;i>=1;i--){
    //     for(let j=w;j>=1;j--){
    //         if(m[i][j]=='.' && m[i][j+1] != '#') yoko[i][j] = yoko[i][j+1];
    //     }
    // }

    let tate = [...new Array(h+2)].map(()=>new Array(w+2).fill(0));
    for(let i=1;i<=w;i++){
        for(let j=1;j<=h;j++){
            if(m[j][i]=='.') tate[j][i] = tate[j-1][i]+1;
        }
    }
    // for(let i=w;i>=1;i--){
    //     for(let j=h;j>=1;j--){
    //         if(m[j][i]=='.' && m[j+1][i] != '#') tate[j][i] = tate[j+1][i];
    //     }
    // }
    //console.log(h,w,m,yoko,tate);

    let ans = 0;
    for(let i=h;i>=1;i--){
        for(let j=w;j>=1;j--){
            if(m[i][j]=='.' && m[i][j+1] != '#') yoko[i][j] = yoko[i][j+1];
            if(m[i][j]=='.' && m[i+1][j] != '#') tate[i][j] = tate[i+1][j];
            ans = Math.max(ans,yoko[i][j]+tate[i][j]-1);
        }
    }
    // for(let i=1;i<=h;i++){
    //     for(let j=1;j<=w;j++){
    //         ans = Math.max(ans,yoko[i][j]+tate[i][j]-1);
    //     }
    // }
    console.log(ans);
}
//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));
