#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;

const int N=2003;
int n,m;
char s[N][N];
int up[N][N];
int down[N][N];
int lef[N][N];
int rigt[N][N];

int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)
    {
        scanf("%s",s[i]+1);
    }
//    for(int i=1;i<=n;i++)
//    {
//        for(int j=1;j<=m;j++)
//        {
//            printf("%c",s[i][j]);
//        }
//        printf("\n");
//    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            if(s[i][j]=='#')
            {
                lef[i][j]=0;
            }
            else lef[i][j]=lef[i][j-1]+1;
        }
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=m;j>=1;j--)
        {
            if(s[i][j]=='#')
            {
                rigt[i][j]=0;
            }
            else rigt[i][j]=rigt[i][j+1]+1;
        }
    }
    for(int i=1;i<=m;i++)
    {
        for(int j=n;j>=1;j--)
        {
            if(s[j][i]=='#')
            {
                down[j][i]=0;
            }
            else down[j][i]=down[j+1][i]+1;
        }
    }
    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=n;j++)
        {
            if(s[j][i]=='#')
            {
                up[j][i]=0;
            }
            else up[j][i]=up[j-1][i]+1;
        }
    }
    int maxx=-1;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            int wns=up[i][j]+down[i][j]+rigt[i][j]+lef[i][j]-3;
            if(wns>maxx)
            {
                maxx=wns;
            }
        }
    }
//    for(int i=1;i<=n;i++)
//    {
//        for(int j=1;j<=m;j++)
//        {
//            printf("%d %d:  %d %d %d %d\n",i,j,up[i][j],down[i][j],rigt[i][j],lef[i][j]);
//
//
//        }
//    }
    printf("%d\n",maxx);
    return 0;
}
