Buggy python submission (verdict: Runtime Error):
N, M = (int(i) for i in input().split())
ans = 1

# N = 100000                                                                                                                                                                                                                                                                          
# M = 100000                                                                                                                                                                                                                                                                          

if __name__ == '__main__':
    if N == (M + 1) or N == (M - 1):
        for n in range(1, N+1):
            ans *= n
            ans %= 1e9 + 7
        for m in range(1, M+1):
            ans *= m
            ans %= 1e9 + 7
    elif N == M:
        for n in range(1, N+1):
            ans *= n
            ans %= 1e9 + 7
        for m in range(1, M+1):
            ans *= m
            ans %= 1e9 + 7
        ans *= 2
        ans %= 1e9 + 7
    else:
        ans = 0

    print int(ans)

Fixed submission:
import sys

N, M = (int(i) for i in raw_input().split())
ans = 1                                                                                                                                                                                                                                                                     

if __name__ == '__main__':
    if N == (M + 1) or N == (M - 1):
        for n in range(1, N+1):
            ans *= n
            ans %= 1e9 + 7
        for m in range(1, M+1):
            ans *= m
            ans %= 1e9 + 7
    elif N == M:
        for n in range(1, N+1):
            ans *= n
            ans %= 1e9 + 7
        for m in range(1, M+1):
            ans *= m
            ans %= 1e9 + 7
        ans *= 2
        ans %= 1e9 + 7
    else:
        ans = 0

    print int(ans)

Buggy python submission (verdict: Runtime Error):
N, M = (int(i) for i in input().split())
ans = 1

if N == (M + 1) or N == (M - 1):
    for n in range(1, N+1):
        ans *= n
        ans %= 1e9 + 7
    for m in range(1, M+1):
        ans *= m
        ans %= 1e9 + 7
elif N == M:
    for n in range(1, N+1):
        ans *= n
        ans %= 1e9 + 7
    for m in range(1, M+1):
        ans *= m
        ans %= 1e9 + 7
    ans *= 2
    ans %= 1e9 + 7
else:
    ans = 0

print int(ans)

Fixed submission:
import sys

N, M = (int(i) for i in raw_input().split())
ans = 1                                                                                                                                                                                                                                                                     

if __name__ == '__main__':
    if N == (M + 1) or N == (M - 1):
        for n in range(1, N+1):
            ans *= n
            ans %= 1e9 + 7
        for m in range(1, M+1):
            ans *= m
            ans %= 1e9 + 7
    elif N == M:
        for n in range(1, N+1):
            ans *= n
            ans %= 1e9 + 7
        for m in range(1, M+1):
            ans *= m
            ans %= 1e9 + 7
        ans *= 2
        ans %= 1e9 + 7
    else:
        ans = 0

    print int(ans)

Buggy python submission (verdict: Runtime Error):
l = input().split()
N = l[0]
M = l[1]
ans = 1

# N = 100000                                                                                                                                                                                                                                                                          
# M = 100000                                                                                                                                                                                                                                                                          

if N == (M + 1) or N == (M - 1):
    for n in range(1, N+1):
        ans *= n
        ans %= 1e9 + 7
    for m in range(1, M+1):
        ans *= m
        ans %= 1e9 + 7
elif N == M:
    for n in range(1, N+1):
        ans *= n
        ans %= 1e9 + 7
    for m in range(1, M+1):
        ans *= m
        ans %= 1e9 + 7
    ans *= 2
    ans %= 1e9 + 7
else:
    ans = 0

print int(ans)

Fixed submission:
import sys

N, M = (int(i) for i in raw_input().split())
ans = 1                                                                                                                                                                                                                                                                     

if __name__ == '__main__':
    if N == (M + 1) or N == (M - 1):
        for n in range(1, N+1):
            ans *= n
            ans %= 1e9 + 7
        for m in range(1, M+1):
            ans *= m
            ans %= 1e9 + 7
    elif N == M:
        for n in range(1, N+1):
            ans *= n
            ans %= 1e9 + 7
        for m in range(1, M+1):
            ans *= m
            ans %= 1e9 + 7
        ans *= 2
        ans %= 1e9 + 7
    else:
        ans = 0

    print int(ans)

Buggy python submission (verdict: Runtime Error):
l = raw_input().split()
N = l[0]
M = l[1]
ans = 1                                                                                                                                                                                                                                                               

if N == (M + 1) or N == (M - 1):
    for n in range(1, N+1):
        ans *= n
        ans %= 1e9 + 7
    for m in range(1, M+1):
        ans *= m
        ans %= 1e9 + 7
elif N == M:
    for n in range(1, N+1):
        ans *= n
        ans %= 1e9 + 7
    for m in range(1, M+1):
        ans *= m
        ans %= 1e9 + 7
    ans *= 2
    ans %= 1e9 + 7
else:
    ans = 0

print int(ans)

Fixed submission:
import sys

N, M = (int(i) for i in raw_input().split())
ans = 1                                                                                                                                                                                                                                                                     

if __name__ == '__main__':
    if N == (M + 1) or N == (M - 1):
        for n in range(1, N+1):
            ans *= n
            ans %= 1e9 + 7
        for m in range(1, M+1):
            ans *= m
            ans %= 1e9 + 7
    elif N == M:
        for n in range(1, N+1):
            ans *= n
            ans %= 1e9 + 7
        for m in range(1, M+1):
            ans *= m
            ans %= 1e9 + 7
        ans *= 2
        ans %= 1e9 + 7
    else:
        ans = 0

    print int(ans)