import std.stdio;
import std.conv;
import std.string;
import std.typecons;
import std.algorithm;
import std.array;
import std.range;
import std.math;
import std.regex : regex;
import std.container;
import std.bigint;
import std.numeric;


void main()
{
  int n, m;
  readf("%s %s\n", &n, &m);

  int d = max(n, m) - min(n, m);

  if (d > 1) {
    writeln("0");
    return;
  }

  long res = 1;
  foreach (i; 2..n+1) {
    res *= i;
    res %= 10^^9 + 7;
  }
  foreach (i; 2..m+1) {
    res *= i;
    res %= 10^^9 + 7;
  }

  if (d == 0) {
    res *= 2;
    res %= 10^^9 + 7;
  }

  res.writeln;
}
