function factorialize(num) {
  if (num === 0) { return 1; }
  return num * factorialize(num-1);
}

// inputに入力データ全体が入る
function Main(input) {
	// 1行目がinput[0], 2行目がinput[1], …に入る
	input = input.split("\n");
	tmp = input[0].split(" ");
	//文字列から10進数に変換するときはparseIntを使います
	var N = parseInt(tmp[0], 10);
	var M = parseInt(tmp[1], 10);
  var answer;
  var limit = Math.pow(10,9)+ 7;
	//出力
  if (M === N) {
    answer = factorialize(M) * factorialize(N) * 2;
    console.log(answer % limit);
  }else if (Math.abs(M-N) ===1) {
    answer = factorialize(M) * factorialize(N);
    console.log(answer % limit);
  }else {
   console.log(0);  
  }

}
//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));
