//Author: AKSHAY VASANDANI FROM JAYPEE INSTITUTE OF INFORMATION TECHNOLOGY //#include //#include #define ll long long #define gcd __gcd #include #define fi first #define se second #define mod 1000000007 #define pb push_back #define N 100001 #define eb emplace_back //#include //#define bigint boost::multiprecision::cpp_int using namespace std; //using namespace __gnu_pbds; /*typedef tree< int, null_type, less, rb_tree_tag, tree_order_statistics_node_update> ordered_set; ordered_set gset[100001]; */ int readInt () { bool minus = false; int result = 0; char ch; ch = getchar(); while (true) { if (ch == '-') break; if (ch >= '0' && ch <= '9') break; ch = getchar(); } if (ch == '-') minus = true; else result = ch-'0'; while (true) { ch = getchar(); if (ch < '0' || ch > '9') break; result = result*10 + (ch - '0'); } if (minus) return -result; else return result; } ll readLong () { bool minus = false; ll result = 0; char ch; ch = getchar(); while (true) { if (ch == '-') break; if (ch >= '0' && ch <= '9') break; ch = getchar(); } if (ch == '-') minus = true; else result = ch-'0'; while (true) { ch = getchar(); if (ch < '0' || ch > '9') break; result = result*10 + (ch - '0'); } if (minus) return -result; else return result; } ll p(ll a,ll b) { ll temp; if(b==0) return 1; temp=p(a,b/2)%mod; if(b&1) return (((a*temp)%mod)*temp)%mod; else return (temp*temp)%mod; } int i,j,n,m,q,u,h,t,k,a,b,c,d; int s,de,f,e,g,cnt,l,x,y,r,mi,h1; int ar[200001]; ll minn(ll a,ll b) { if(a<=b) return a; return b; } int main() { n=readInt(); m=readInt(); ll a1=0; if(n>1) a1=((ll)n-1); if(m>1) a1+=(ll)(m-1)*((ll)n); cout<