integer H,W
character(2000) S
integer,allocatable,dimension(:,:)::maze,yoko,tate
integer hajime,owari,cnt,ans
read*,H,W
allocate(yoko(H,W),tate(H,W),maze(H,W))

maze=0
do  i=1,H
  read*,S
  do j=1,W
    if(S(j:j)=="#")maze(i,j)=-1
  end do
end do

yoko=0
do i=1,H
  if(maze(i,1)/=-1)then
    hajime=1
    cnt=1
  end if
  if(W/=1)then
    do j=2,W
      if(maze(i,j-1)==-1.and.maze(i,j)==0)then
        hajime=j
        cnt=1
      else if(maze(i,j)==0)then
        cnt=cnt+1
      end if
      if(j==W.and.maze(i,j)==0)then
        owari=j
        yoko(i,hajime:owari)=cnt
      else if(maze(i,j)==0.and.maze(i,j+1)==-1)then
        owari=j
        yoko(i,hajime:owari)=cnt
      end if
    end do
  else
    yoko(i,1)=merge(0,1,maze(i,1)==-1)
  endif
end do

tate=0
do i=1,W
  if(maze(1,i)/=-1)then
    hajime=1
    cnt=1
  end if
  if(H/=1)then
    do j=2,H
      if(maze(j-1,i)==-1.and.maze(j,i)==0)then
        hajime=j
        cnt=1
      else if(maze(j,i)==0)then
        cnt=cnt+1
      end if
      if(j==H.and.maze(j,i)==0)then
        owari=j
        tate(hajime:owari,i)=cnt
      else if(maze(j,i)==0.and.maze(j+1,i)==-1)then
        owari=j
        tate(hajime:owari,i)=cnt
      end if
    end do
  else
    tate(1,i)=merge(0,1,maze(1,i)==-1)
  endif
end do

ans=0
do i=1,H
  do j=1,W
    ans=max(ans,yoko(i,j)+tate(i,j))
  end do
end do

print"(I0)",ans-1
end