#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#pragma GCC target("sse2")

    /*
    ||||||||||||||||||||||||||||||||||||||||||||||||
       |      |||         |      ||||    ||||  |   |
      | |     |   |      | |     |   |  |      |   |
     |   |    |    |    |   |    |   |  |      |   |
    |||||||   |    |   |||||||   |||     |||   |||||
    |     |   |   |    |     |   | |        |  |   |
    |     |   |||      |     |   |  ||  ||||   |   |
    ||||||||||||||||||||||||||||||||||||||||||||||||

    */
    using namespace std;
    //#include "testlib.h"
    #define ff first
    #define ss second
    #define mp make_pair
    #define all(v) v.begin(),v.end()
    #define int long long
    #define ll long long
    #define M 1000000007

    #define mii  map<ll ,ll >
    #define msi  map<string,ll >
    #define mis  map<ll int, string>
    #define rep(a,b)    for(ll i=a;i<b;i++)
    #define rep0(n)    for(ll i=0;i<n;i++)
    #define repi(i,a,b) for(ll i=a;i<b;i++)
    #define pb push_back
    #define vi vector<ll>
    #define mp make_pair
    #define vs vector<string>
    #define ppb pop_back
    #define endl '\n'
    #define asdf ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    #define r0 return 0;
    #define FORD(i, a, b) for (int i = (int) (a); i >= (int) (b); --i)
    #define FORE(it, c) for (__typeof((c).begin()) it = (c).begin(); it != (c).end(); ++it)
    #define inputoutput freopen("input.txt", "r", stdin);freopen("output.txt", "w", stdout);
    #define input freopen("input.txt", "r", stdin);
    #define Set(a, s) 4(a, s, sizeof (a))
    #define FOR repi
    #define pii pair<int,int>
    //#define float long double
    ll max(ll a, ll b) { return (a > b)? a : b;}
    int min(int a, int b) { return (a < b)? a : b;}


     int solve()
     {
        int h,w;
        cin>>h>>w;
        string s[h];
        rep0(h) cin>>s[i];
        int a[h][w];
        rep0(h) repi(j,0,w) a[i][j]=0;
        int b[h][w];
        rep0(h) repi(j,0,w) b[i][j]=0;
        rep0(h)
        {
           int j=0;
           while(j<w){
              
                if(s[i][j]=='#'){j++;}
                  int count=0,cur=j;
                while(s[i][j]!='#'&&j<w)
                {
                    count++;
                    j++;
                }
                while(cur<j){
                    a[i][cur]=count;
                    cur++;
                }

           }
         
     }
    repi(j,0,w){
        int i=0;
        while(i<h){
            if(s[i][j]=='#') i++;
            int count=0;
            int cur=i;
            while(s[i][j]!='#'&&i<h){
                count++;
                i++;
            }
            while(cur<i){
                b[cur][j]=count;
                cur++;
            }
        }
    }



     int ans=0;
     rep0(h)
     {
        repi(j,0,w){
            //cout<<b[i][j]<<" ";
            ans=max(ans,a[i][j]+b[i][j]-1);
        }
       // cout<<endl;
     }
     cout<<ans;

        }
    signed main()
    {   
        asdf
        int t=1;
        //cin>>t;
        while(t--)
        {
            solve();
        }     
        
}

Measured memory_bytes: 69120