#include #include #include using namespace std; const long long mod = 1e9 + 7; int f(int x, int y, int n) { if (x > n) return 0; if (x == y) { return f(x + y, x, n) + 1; } else { return f(x + y, y, n) + f(x + y, x, n) + 1; } } int main() { long long n, m; cin >> n >> m; long long ans = f(m, m, n); if (m <= n) ans--; ans *= 2; for (int i = 1; i <= n - 2; i++) { ans *= i; ans %= mod; } cout << ans << endl; }