Buggy python submission (verdict: Time Limit Exceeded):
import sys

read = sys.stdin.buffer.read
input = sys.stdin.buffer.readline
inputs = sys.stdin.buffer.readlines


# rstrip().decode('utf-8')
# INF=float("inf")
#MOD=10**9+7
# sys.setrecursionlimit(2147483647)
# import math
#import numpy as np
# import operator
# import bisect
# from heapq import heapify,heappop,heappush
#from math import gcd
# from fractions import gcd
# from collections import deque
# from collections import defaultdict
# from collections import Counter
# from itertools import accumulate
# from itertools import groupby
# from itertools import permutations
# from itertools import combinations
# from scipy.sparse import csr_matrix
# from scipy.sparse.csgraph import floyd_warshall
# from scipy.sparse.csgraph import csgraph_from_dense
# from scipy.sparse.csgraph import dijkstra
# map(int,input().split())


def main():
	h,w=map(int,input().split())
	S=[input().rstrip().decode('utf-8') for _ in range(h)]
	L=[[0]*w for _ in range(h)]
	R=[[0]*w for _ in range(h)]
	U=[[0]*w for _ in range(h)]
	D=[[0]*w for _ in range(h)]
	
	for i in range(h):
		for j in range(w):
			if j==0:
				if S[i][j]==".":
					L[i][j]=1
			else:
				if S[i][j] == ".":
					L[i][j]=L[i][j-1]+1
	
	for i in reversed(range(h)):
		for j in reversed(range(w)):
			if j==w-1:
				if S[i][j]==".":
					R[i][j]=1
			else:
				if S[i][j] == ".":
					R[i][j]=R[i][j+1]+1
	
	for j in range(w):
		for i in range(h):
			if i==0:
				if S[i][j]==".":
					U[i][j]=1
			else:
				if S[i][j] == ".":
					U[i][j]=U[i-1][j]+1
	
	for j in reversed(range(w)):
		for i in reversed(range(h)):
			if i==h-1:
				if S[i][j]==".":
					D[i][j]=1
			else:
				if S[i][j] == ".":
					D[i][j]=D[i+1][j]+1
	
	ans=0
	for i in range(h):
		for j in range(w):
			ans=max(ans,L[i][j]+R[i][j]+U[i][j]+D[i][j]-3)
	
	print(ans)
	
	
	
	
	
	
	
	
	
	
	



if __name__ == '__main__':
	main()


Fixed submission:
import sys

read = sys.stdin.buffer.read
input = sys.stdin.buffer.readline
inputs = sys.stdin.buffer.readlines


# rstrip().decode('utf-8')
# INF=float("inf")
#MOD=10**9+7
# sys.setrecursionlimit(2147483647)
# import math
#import numpy as np
# import operator
# import bisect
# from heapq import heapify,heappop,heappush
#from math import gcd
# from fractions import gcd
# from collections import deque
# from collections import defaultdict
# from collections import Counter
# from itertools import accumulate
# from itertools import groupby
# from itertools import permutations
# from itertools import combinations
# from scipy.sparse import csr_matrix
# from scipy.sparse.csgraph import floyd_warshall
# from scipy.sparse.csgraph import csgraph_from_dense
# from scipy.sparse.csgraph import dijkstra
# map(int,input().split())


def main():
	h,w=map(int,input().split())
	S=[input().rstrip().decode('utf-8') for _ in range(h)]
	L=[[0]*w for _ in range(h)]
	R=[[0]*w for _ in range(h)]
	U=[[0]*w for _ in range(h)]
	D=[[0]*w for _ in range(h)]
	
	for i in range(h):
		for j in range(w):
			if j==0:
				if S[i][j]==".":
					L[i][j]=1
			else:
				if S[i][j] == ".":
					L[i][j]=L[i][j-1]+1
	
	for i in reversed(range(h)):
		for j in reversed(range(w)):
			if j==w-1:
				if S[i][j]==".":
					R[i][j]=1
			else:
				if S[i][j] == ".":
					R[i][j]=R[i][j+1]+1
	
	for j in range(w):
		for i in range(h):
			if i==0:
				if S[i][j]==".":
					U[i][j]=1
			else:
				if S[i][j] == ".":
					U[i][j]=U[i-1][j]+1
	
	for j in reversed(range(w)):
		for i in reversed(range(h)):
			if i==h-1:
				if S[i][j]==".":
					D[i][j]=1
			else:
				if S[i][j] == ".":
					D[i][j]=D[i+1][j]+1
	
	ans=0
	for i in range(h):
		for j in range(w):
			ans=max(ans,L[i][j]+R[i][j]+U[i][j]+D[i][j]-3)
	
	print(ans)
	
	
	
	
	
	
	
	
	
	
	



if __name__ == '__main__':
	main()