### BUGGY CODE ###

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

def getRightCount(h, w):
    key = str(h) + str(w)
    if s[h][w] == '#':
        dpr[key] = 0
        return
    cnt = 0
    for i in range(w+1, W):
        if s[h][i] == '#':
            break
        else:
            cnt += 1
        temp = str(h) + str(i)
        if temp in dpr:
            cnt += dpr[temp]
            break
    dpr[key] = cnt

def getLeftCount(h, w):
    key = str(h) + str(w)
    if s[h][w] == '#':
        dpl[key] = 0
        return
    cnt = 0
    for i in reversed(range(0, w)):
        if s[h][i] == '#':
            break
        else:
            cnt += 1
        temp = str(h) + str(i)
        if temp in dpl:
            cnt += dpl[temp]
            break
    dpl[key] = cnt

def getDownCount(h, w):
    key = str(h) + str(w)
    if s[h][w] == '#':
        dpd[key] = 0
        return
    cnt = 0
    for i in range(h+1, H):
        if s[i][w] == '#':
            break
        cnt += 1
        temp = str(i) + str(w)
        if temp in dpd:
            cnt += dpd[temp]
            break
    dpd[key] = cnt

def getUpCount(h, w):
    key = str(h) + str(w)
    if s[h][w] == '#':
        dpu[key] = 0
        return
    cnt = 0
    for i in reversed(range(0, h)):
        if s[i][w] == '#':
            break
        cnt += 1
        temp = str(i) + str(w)
        if temp in dpu:
            cnt += dpu[temp]
            break
    dpu[key] = cnt

def getCount(h, w):
    if s[h][w] == '#':
        return 0
    getRightCount(h, w)
    getLeftCount(h, w)
    getDownCount(h, w)
    getUpCount(h, w)

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

for i in range(H):
    for j in range(W):
        if s[i][j] == '.':
            #print('\n', i, j)
            key = str(i) + str(j)
            #print(dpr[key], dpl[key], dpd[key], dpu[key])
            temp = dpr[key] + dpl[key] + dpd[key] + dpu[key] + 1
            ans = max(ans, temp)
            #print(ans)

#print(dpr)
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)