#include <iostream>
#include <cmath>
using namespace std;
int main() {
int n,m;
long long f,f1=1,f2=1,p=1000000007;
cin >> n >> m;
if (abs(n-m)>1) cout << "0";
else if (n==m) {
for (int i=1; i<=n; i++) {
f1=f1*i;
if (f1>p) f1=f1%p;
}
for (int j=1; j<=m; j++) {
f2=f2*j;
if (f2>p) f2=f2%p;
}
f=2*f1*f2;
if (f>p) f=f%p;
cout << f;
} else {
for (int i=1; i<=n; i++) {
f1=f1*i;
if (f1>p) f1=f1%p;
}
for (int j=1; j<=m; j++) {
f2=f2*j;
if (f2>p) f2=f2%p;
}
f=f1*f2;
if (f>p) f=f%p;
cout << f;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWludCBuLG07Cglsb25nIGxvbmcgZixmMT0xLGYyPTEscD0xMDAwMDAwMDA3OwoJY2luID4+IG4gPj4gbTsKCWlmIChhYnMobi1tKT4xKSBjb3V0IDw8ICIwIjsKCWVsc2UgaWYgKG49PW0pIHsKCQlmb3IgKGludCBpPTE7IGk8PW47IGkrKykgewoJCQlmMT1mMSppOwoJCQlpZiAoZjE+cCkgZjE9ZjElcDsKCQl9CgkJZm9yIChpbnQgaj0xOyBqPD1tOyBqKyspIHsKCQkJZjI9ZjIqajsKCQkJaWYgKGYyPnApIGYyPWYyJXA7CgkJfQoJCWY9MipmMSpmMjsKCQlpZiAoZj5wKSBmPWYlcDsKCQljb3V0IDw8IGY7Cgl9IGVsc2UgewoJCWZvciAoaW50IGk9MTsgaTw9bjsgaSsrKSB7CgkJCWYxPWYxKmk7CgkJCWlmIChmMT5wKSBmMT1mMSVwOwoJCX0KCQlmb3IgKGludCBqPTE7IGo8PW07IGorKykgewoJCQlmMj1mMipqOwoJCQlpZiAoZjI+cCkgZjI9ZjIlcDsKCQl9CgkJZj1mMSpmMjsKCQlpZiAoZj5wKSBmPWYlcDsKCQljb3V0IDw8IGY7Cgl9CglyZXR1cm4gMDsKfQ==