Buggy python submission (verdict: Runtime Error):
H, W = [int(a) for a in input().split()]
S = [None] * H
for i in range(H):
    S[i] = input()

L = [[0 for _ in range(W)] for _ in range(H)]
R = [[0 for _ in range(W)] for _ in range(H)]
U = [[0 for _ in range(W)] for _ in range(H)]
D = [[0 for _ in range(W)] for _ in range(H)]

ans = 0

for i in range(H):
    for j in range(W):
        # Uを求める
        if S[i][j] == '#':  pass  # Uは0で初期化されている
        elif i == 0:        U[i][j] = 1
        else:               U[i][j] = U[i - 1][j] + 1

        # Dを求める
        if S[H - 1 - i][j] == '#':  pass
        elif i == 0:    D[i][j] = 1
        else:           D[i][j] = D[i + 1][j] + 1

        # Lを求める
        if S[i][j] == '#':  pass
        elif j == 0:  L[i][j] = 1
        else:       L[i][j] = L[i][j - 1] + 1

        # Rを求める
        if S[i][W - 1 - j] == '#':  pass
        elif j == 0:    R[i][W - 1 - j] = 1
        else:           R[i][W - 1 - j] = R[i][W - j] + 1

        ans = max(ans, L[i][j] + R[i][j] + U[i][j] + D[i][j] - 3)
        
print(ans)

Fixed submission:
H, W = [int(a) for a in input().split()]
S = [None] * H
for i in range(H):
    S[i] = input()

L = [[0 for _ in range(W)] for _ in range(H)]
R = [[0 for _ in range(W)] for _ in range(H)]
U = [[0 for _ in range(W)] for _ in range(H)]
D = [[0 for _ in range(W)] for _ in range(H)]

ans = 0

# L, R, Uを求める
for i in range(H):
    for j in range(W):

        if S[i][j] == '#':
            pass  # L, R, Uは0で初期化されている
        else:
            # Uを求める
            if i == 0:  U[i][j] = 1
            else:       U[i][j] = U[i - 1][j] + 1

            # Lを求める
            if j == 0:  L[i][j] = 1
            else:       L[i][j] = L[i][j - 1] + 1

        # Rを求める
        if S[i][W - 1 - j] == '#':
            pass
        elif j == 0:
            R[i][W - 1 - j] = 1
        else:
            R[i][W - 1 - j] = R[i][W - j] + 1

# Dを求める
for i in range(H - 1, -1, -1):
    for j in range(W):
        if S[i][j] == '#':  pass
        elif i == H - 1:    D[i][j] = 1
        else:               D[i][j] = D[i + 1][j] + 1
        ans = max(ans, L[i][j] + R[i][j] + U[i][j] + D[i][j] - 3)

print(ans)

Buggy python submission (verdict: Time Limit Exceeded):
H, W = [int(a) for a in input().split()]
S = [None] * H

for i in range(H):
    S[i] = input()


light = [[[0, 0] for _ in range(W)] for _ in range(H)]
ans = 0

# 横を調べる
for i in range(H):
    j = 0
    while j < W:
        horizontal = 0
        while j < W and S[i][j] == '.':
            horizontal += 1
            j += 1
        for jj in range(horizontal):
            light[i][j - 1 - jj][0] = horizontal
        while j < W and S[i][j] == '#':
            j += 1

# 縦を調べる
for j in range(W):
    i = 0
    while i < H:
        vertical = 0
        while i < H and S[i][j] == '.':
            vertical += 1
            i += 1
        for ii in range(vertical):
            light[i - 1 - ii][j][1] = vertical
            ans = max( ans, sum(light[i - 1 - ii][j]) - 1)
        while i < H and S[i][j] == '#':
            i += 1

print(ans)

Fixed submission:
H, W = [int(a) for a in input().split()]
S = [None] * H
for i in range(H):
    S[i] = input()

L = [[0 for _ in range(W)] for _ in range(H)]
R = [[0 for _ in range(W)] for _ in range(H)]
U = [[0 for _ in range(W)] for _ in range(H)]
D = [[0 for _ in range(W)] for _ in range(H)]

ans = 0

# L, R, Uを求める
for i in range(H):
    for j in range(W):

        if S[i][j] == '#':
            pass  # L, R, Uは0で初期化されている
        else:
            # Uを求める
            if i == 0:  U[i][j] = 1
            else:       U[i][j] = U[i - 1][j] + 1

            # Lを求める
            if j == 0:  L[i][j] = 1
            else:       L[i][j] = L[i][j - 1] + 1

        # Rを求める
        if S[i][W - 1 - j] == '#':
            pass
        elif j == 0:
            R[i][W - 1 - j] = 1
        else:
            R[i][W - 1 - j] = R[i][W - j] + 1

# Dを求める
for i in range(H - 1, -1, -1):
    for j in range(W):
        if S[i][j] == '#':  pass
        elif i == H - 1:    D[i][j] = 1
        else:               D[i][j] = D[i + 1][j] + 1
        ans = max(ans, L[i][j] + R[i][j] + U[i][j] + D[i][j] - 3)

print(ans)

Buggy python submission (verdict: Time Limit Exceeded):
H, W = [int(a) for a in input().split()]
S = [None] * H

for i in range(H):
    S[i] = input()

light = [[[0, 0] for _ in range(W)] for _ in range(H)]
ans = 0

# 横を調べる
for i in range(H):
    j = 0
    while j < W:
        horizontal = 0
        while j < W and S[i][j] == '.':
            horizontal += 1
            j += 1
        for jj in range(horizontal):
            light[i][j - 1 - jj][0] = horizontal
        while j < W and S[i][j] == '#':
            j += 1

# 縦を調べる
for j in range(W):
    i = 0
    while i < H:
        vertical = 0
        while i < H and S[i][j] == '.':
            vertical += 1
            i += 1
        for ii in range(vertical):
            light[i - 1 - ii][j][1] = vertical
            ans = max( ans, sum(light[i - 1 - ii][j]) - 1)
        while i < H and S[i][j] == '#':
            i += 1

print(ans)


Fixed submission:
H, W = [int(a) for a in input().split()]
S = [None] * H
for i in range(H):
    S[i] = input()

L = [[0 for _ in range(W)] for _ in range(H)]
R = [[0 for _ in range(W)] for _ in range(H)]
U = [[0 for _ in range(W)] for _ in range(H)]
D = [[0 for _ in range(W)] for _ in range(H)]

ans = 0

# L, R, Uを求める
for i in range(H):
    for j in range(W):

        if S[i][j] == '#':
            pass  # L, R, Uは0で初期化されている
        else:
            # Uを求める
            if i == 0:  U[i][j] = 1
            else:       U[i][j] = U[i - 1][j] + 1

            # Lを求める
            if j == 0:  L[i][j] = 1
            else:       L[i][j] = L[i][j - 1] + 1

        # Rを求める
        if S[i][W - 1 - j] == '#':
            pass
        elif j == 0:
            R[i][W - 1 - j] = 1
        else:
            R[i][W - 1 - j] = R[i][W - j] + 1

# Dを求める
for i in range(H - 1, -1, -1):
    for j in range(W):
        if S[i][j] == '#':  pass
        elif i == H - 1:    D[i][j] = 1
        else:               D[i][j] = D[i + 1][j] + 1
        ans = max(ans, L[i][j] + R[i][j] + U[i][j] + D[i][j] - 3)

print(ans)