#include using namespace std; #define rep(i, f, n) for (int i = (f); i < (n); i++) #define rrep(i, f, n) for (int i = int(n) - 1; i >= f; i--) typedef long long ll; typedef pair P; template auto Sum(T a, U b) -> decltype(a + b) { return a + b; } template inline bool amax(T &a, U b) { if (b > a) { a = b; return true; } return false; } template inline bool amin(T &a, U b) { if (b < a) { a = b; return true; } return false; } const int MOD = 1000000007; int main() { ll A, B; cin >> A >> B; ll ans; if (A % 2 == B % 2) { ans = (A + 1) * (B + 1) % MOD + A * B % MOD; } else { ans = (A + 1) * B % MOD + (B + 1) * A % MOD; } cout << ans % MOD << endl; }