n,m=list(map(int,input().split()))

div=10**9+7

if abs(n-m)>1:

  print((0))

else:

  ans=1

  for i in range(1,n+1):

    ans=ans*i%div

  for i in range(1,m+1):

    ans=ans*i%div

  if n==m:

    ans*=2

  print((ans%div))
n,m=list(map(int,input().split()))

div=10**9+7

if abs(n-m)>1:

  print((0))

else:

  ans=1

  for i in range(1,min(m,n)+1):

    ans=ans*i%div

  ans*=ans

  if n!=m:

    ans*=max(m,n)

  if n==m:

    ans*=2

  print((ans%div))
n, m = list(map(int, input().split()))
div = 10**9 + 7
if abs(n - m) > 1:
    print((0))
else:
    ans = 1
    for i in range(1, n + 1):
        ans = ans * i % div
    for i in range(1, m + 1):
        ans = ans * i % div
    if n == m:
        ans *= 2
    print((ans % div))

n, m = list(map(int, input().split()))
div = 10**9 + 7
if abs(n - m) > 1:
    print((0))
else:
    ans = 1
    for i in range(1, min(m, n) + 1):
        ans = ans * i % div
    ans *= ans
    if n != m:
        ans *= max(m, n)
    if n == m:
        ans *= 2
    print((ans % div))

-    for i in range(1, n + 1): +    for i in range(1, min(m, n) + 1): -    for i in range(1, m + 1): -        ans = ans * i % div +    ans *= ans +    if n != m: +        ans *= max(m, n)