### BUGGY CODE ###

import sys

sys.setrecursionlimit(5000)
H, W = map(int, input().split())
s, dp, ans = [], {}, 0
for i in range(H):
    s.append(input())
def getRightCount(h, w):
    key = str(h) + str(w) + 'r'
    if key in dp:
        return dp[key]
    elif s[h][w] == '#':
        dp[key] = 0
    elif w == W - 1:
        dp[key] = 0
    elif s[h][w+1] == '#':
        dp[key] = 0
    else:
        dp[key] = 1 + getRightCount(h, w+1)
    return dp[key]
def getLeftCount(h, w):
    key = str(h) + str(w) + 'l'
    if key in dp:
        return dp[key]
    elif s[h][w] == '#':
        dp[key] = 0
    elif w == 0:
        dp[key] = 0
    elif s[h][w-1] == '#':
        dp[key] = 0
    else:
        dp[key] = 1 + getLeftCount(h, w-1)
    return dp[key]
def getDownCount(h, w):
    key = str(h) + str(w) + 'd'
    if key in dp:
        return dp[key]
    elif s[h][w] == '#':
        dp[key] = 0
    elif h == H - 1:
        dp[key] = 0
    elif s[h+1][w] == '#':
        dp[key] = 0
    else:
        dp[key] = 1 + getDownCount(h+1, w)
    return dp[key]
def getUpCount(h, w):
    key = str(h) + str(w) + 'u'
    if key in dp:
        return dp[key]
    elif s[h][w] == '#':
        dp[key] = 0
    elif h == 0:
        dp[key] = 0
    elif s[h-1][w] == '#':
        dp[key] = 0
    else:
        dp[key] = 1 + getUpCount(h-1, w)
    return dp[key]
def getCount(h, w):
    if s[h][w] == '#':
        return 0
    rCnt, lCnt, uCnt, dCnt = 0,0,0,0
    key = str(h) + str(w)
    # to right
    rkey = key + 'r'
    rCnt = getRightCount(h, w)
    # to left
    lkey = key + 'l'
    lCnt = getLeftCount(h, w)
    # to down
    dkey = key + 'd'
    dCnt = getDownCount(h, w)
    # to up
    ukey = key + 'u'
    uCnt = getUpCount(h, w)
    return rCnt + lCnt + uCnt + dCnt + 1

for i in reversed(range(H)):
    for j in reversed(range(W)):
        ans = max(ans, getCount(i, j))
print(ans)

### FIXED CODE ###

H, W = map(int, input().split())
s, ans = [], 0
dpr = [[0] * W for _ in range(H)]
dpl = [[0] * W for _ in range(H)]
dpd = [[0] * W for _ in range(H)]
dpu = [[0] * W for _ in range(H)]

for i in range(H):
    s.append(input())

# to right
for i in range(H):
    for j in reversed(range(W)):
        if j == W-1 and s[i][j] == '.':
            dpr[i][j] = 1
        elif s[i][j] == '#':
            dpr[i][j] = 0
        else:
            dpr[i][j] = dpr[i][j+1] + 1

# to left
for i in range(H):
    for j in range(0, W):
        if j == 0 and s[i][j] == '.':
            dpl[i][j] = 1
        elif s[i][j] == '#':
            dpl[i][j] = 0
        else:
            dpl[i][j] = dpl[i][j-1] + 1

# to down
for i in reversed(range(H)):
    for j in range(W):
        if i == H-1 and s[i][j] == '.':
            dpd[i][j] = 1
        elif s[i][j] == '#':
            dpd[i][j] = 0
        else:
            dpd[i][j] = dpd[i+1][j] + 1

# to up
for i in range(0, H):
    for j in range(W):
        if i == 0 and s[i][j] == '.':
            dpu[i][j] = 1
        elif s[i][j] == '#':
            dpu[i][j] = 0
        else:
            dpu[i][j] = dpu[i-1][j] + 1

for i in reversed(range(H)):
    for j in reversed(range(W)):
        cnt = dpr[i][j] + dpl[i][j] + dpd[i][j] + dpu[i][j] - 3
        ans = max(ans, cnt)

print(ans)