#include <iostream>
#include<string>
#include<cmath>
#include<algorithm>
#include<cctype>
#include<queue>
#include<deque>
#include<regex>
#include<stack>
#include<stdio.h>
#include<vector>
#include<set>
#include<map>
#include<iomanip>

#define rep(i, n) for(int i=0;i<n;i++)

typedef int long long ll;
using namespace std;
typedef pair<int, int> P;
int dx[4] = {1, 0, -1, 0};
int dy[4] = {0, 1, 0, -1};
const ll MOD = 1e9 + 7;
static const int MAX = 100;
static const int INF = (1 << 23);
int  pareh[2001][2001];
int parew[2001][2001];

int main() {
    ll h,w;
    cin>>h>>w;
    char ms[2001][2001];
    rep(i,h){
        rep(j,w){
            cin>>ms[i+1][j+1];
        }
    }
    pair<int,int> d[h+1][w+1];
    rep(i,h+1){
        rep(j,w+1){d[i][j]={0,0};}//たて　横
    }


    for(int i=1;i<=h;i++){
        for(int j=1;j<=w;j++){
            if(ms[i][j]=='.'&&(pareh[i][j]==0||parew[i][j]==0))
            {
               if(pareh[i][j]==0){//たて
                   d[i][j].first=1;
                   pareh[i][j]=i;
                   for(int ii=i+1;ii<=h;ii++){
                       if(ms[ii][j]=='.'){
                           pareh[ii][j]=i;
                           d[i][j].first+=1;
                       }else if(ms[ii][j]=='#')break;
                   }
                   for(int ii=i-1;ii>=0;ii--){
                       if(ms[ii][j]=='.'){
                           pareh[ii][j]=i;
                           d[i][j].first+=1;
                       }else if(ms[ii][j]=='#')break;
                   }
                }


                if(parew[i][j]==0){
                    parew[i][j]=j;
                    d[i][j].second=1;
                    for(int ii=j+1;ii<=w;ii++){
                        if(ms[i][ii]=='.'){
                            parew[i][ii]=j;
                            d[i][j].second+=1;
                        }
                        if(ms[i][ii]=='#')break;
                    }
                    for(int ii=j-1;ii>=0;ii--){
                        if(ms[i][ii]=='.'){
                            parew[i][ii]=j;
                            d[i][j].second+=1;
                        }
                        if(ms[i][ii]=='#')break;
                    }
                }
            }
        }
    }
    int ans=0;

//    for(int i=1;i<=h;i++){
//        for(int j=1;j<=w;j++) {
//            cout<<d[i][j].first<<d[i][j].second<<" ";
//        }
//        cout<<endl;
//        }
//        cout<<endl;

//    for(int i=1;i<=h;i++){
//        for(int j=1;j<=w;j++) {
//            cout<<pareh[i][j]<<parew[i][j]<<" ";
//        }
//        cout<<endl;
//    }


    for(int i=1;i<=h;i++){
        for(int j=1;j<=w;j++){

            int f=0;
            if(parew[i][j]!=0||pareh[i][j]!=0){
                ll k=0;
                if(pareh[i][j]!=0){
                    f++;
                    k+=d[pareh[i][j]][j].first;
                }
                if(parew[i][j]!=0){
                    f++;
                    k+=d[i][parew[i][j]].second;
                }
                if(f==2&&k!=0)k--;
                if(ans<k){ans=k;}

            }
        }
    }
    cout<<ans<<endl;

    return 0;
}


Measured memory_bytes: 66688