using System;
using System.Collections.Generic;
using System.Text;
using System.Numerics;
using System.IO;

namespace SolutionCS
{
    class Program
    {
        struct GRID
        {
            public int flag;
            public int hcont;
            public int vcont;
        }

        static int H;
        static int W;
        static GRID[,] v;

        static void Main(string[] args)
        {
            string[] s = Console.ReadLine().Split(' ');
            H = int.Parse(s[0]);
            W = int.Parse(s[1]);

            v = new GRID[W + 1, H + 1];

            for (int i = 0; i < H; i++)
            {
                string s0 = Console.ReadLine();

                for (int j = 0; j < W; j++)
                {
                    if(s0[j] == '#')
                    {
                        v[j, i].flag = 1;
                    }
                    else
                    {
                        v[j, i].flag = 0;
                    }
                }

                v[W, i].flag = 1;
            }

            for (int j = 0; j < W; j++)
            {
                v[j, H].flag = 1;
            }

            for (int y = 0; y < H + 1; y++)
            {
                for (int x = 0; x < W + 1; x++)
                {
                    if (v[x, y].flag == 1)
                    {
                        int tmp = 0;
                        if (x > 0)
                        {
                            tmp = v[x - 1, y].hcont;

                            for (int x0 = x - 1; x0 >= 0; x0--)
                            {
                                if(v[x0,y].flag == 1)
                                {
                                    break;
                                }
                                v[x0, y].hcont = tmp;
                            }
                        }
                    }
                    else
                    {
                        if (x > 0)
                        {
                            v[x, y].hcont = v[x - 1, y].hcont + 1;
                        }
                        else {
                            v[x, y].hcont = 1;
                        }
                    }
                }
            }

            for (int x = 0; x < W + 1; x++)
            {
                for (int y = 0; y < H + 1; y++)
                {
                    if (v[x, y].flag == 1)
                    {
                        int tmp = 0;
                        if (y > 0)
                        {
                            tmp = v[x, y - 1].vcont;

                            for (int y0 = y - 1; y0 >= 0; y0--)
                            {
                                if (v[x, y0].flag == 1)
                                {
                                    break;
                                }
                                v[x, y0].vcont = tmp;
                            }
                        }
                    }
                    else
                    {
                        if (y > 0)
                        {
                            v[x, y].vcont = v[x, y - 1].vcont + 1;
                        }
                        else
                        {
                            v[x, y].vcont = 1;
                        }
                    }
                }
            }

            int ans = 0;
            for (int y = 0; y < H; y++)
            {
                for (int x = 0; x < W; x++)
                {
                    ans = Math.Max(ans, v[x, y].vcont + v[x, y].hcont - 1);
                }
            }

            Console.WriteLine(ans);
        }
    }
}



Measured memory_bytes: 62144