#include #define mp make_pair #define PII pair #define fi first #define se second #define pb push_back using namespace std; //******************************************** //Error tracking #define show(args...) { vector _v = split(#args, ','); err(_v.begin(), args); } vector split(const string& s, char c) { vector v; stringstream ss(s); string x; while (getline(ss, x, c)) v.emplace_back(x); return move(v); } void err(vector::iterator it) {} template void err(vector::iterator it, T a, Args... args) { cerr << it -> substr((*it)[0] == ' ', it -> length()) << " = " << a << '\n'; err(++it, args...); } //******************************************** long long sol,n,m; int main() { //freopen("input","r",stdin); // freopen("output","w",stdout); cin.sync_with_stdio(false); cin >> n >> m; if (n == 1 && m == 1) {cout << "0\n"; return 0;} sol = m - 1 + 1LL*m*(n - 1); cout << sol << "\n"; return 0; }