#include <iostream>
#include <vector>
#include <queue>
#include <string>
#include <algorithm>
#include <utility>
#include <cmath>
using namespace std;
typedef pair<int, int> P;
typedef long long ll;
const int INF = 1000000007;
ll factorial(ll n){
if(n == 1){
return 1;
}
return ( n * factorial(n-1) ) % INF;
}
int main(void){
ll n, m;
cin >> n >> m;
if(abs(n-m) > 1){
cout << "0" << endl;
return 0;
}
ll sum = ((factorial(n) % INF ) * (factorial(m) % INF)) % INF;
ll ans;
if(n == m){
ans = (sum*2) % INF;
}else{
ans = sum;
}
cout << ans << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8cXVldWU+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDx1dGlsaXR5PgojaW5jbHVkZSA8Y21hdGg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IFA7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwoKY29uc3QgaW50IElORiA9IDEwMDAwMDAwMDc7CgpsbCBmYWN0b3JpYWwobGwgbil7CiAgICBpZihuID09IDEpewogICAgICAgIHJldHVybiAxOwogICAgfQogICAgcmV0dXJuICggbiAqIGZhY3RvcmlhbChuLTEpICkgJSBJTkY7Cn0KaW50IG1haW4odm9pZCl7CiAgICBsbCBuLCBtOwogICAgY2luID4+IG4gPj4gbTsKICAgIGlmKGFicyhuLW0pID4gMSl7CiAgICAgICAgY291dCA8PCAiMCIgPDwgZW5kbDsKICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIGxsIHN1bSA9ICgoZmFjdG9yaWFsKG4pICUgSU5GICkgKiAoZmFjdG9yaWFsKG0pICUgSU5GKSkgJSBJTkY7CiAgICBsbCBhbnM7CiAgICBpZihuID09IG0pewogICAgICAgIGFucyA9IChzdW0qMikgJSBJTkY7CiAgICB9ZWxzZXsKICAgICAgICBhbnMgPSBzdW07CiAgICB9CiAgICBjb3V0IDw8IGFucyA8PCBlbmRsOwogICAgCiAgICByZXR1cm4gMDsKfQ==