#include #ifndef ONLINE_JUDGE #define gc getchar() #define pc(c) putchar(c) #else #define gc getchar_unlocked() #define pc(c) putchar_unlocked(c) #endif #define MOD 1000000007 #define inf 2000000000 #define fill(array, value) memset(array, value, sizeof(array)); #define long long long using namespace std; static struct IO { char tmp[1 << 10]; // fast input routines char cur; inline char nextChar() { return cur = gc; } inline char peekChar() { return cur; } inline operator bool() { return peekChar(); } inline static bool isBlank(char c) { return (c < '-' && c); } inline bool skipBlanks() { while (isBlank(nextChar())); return peekChar() != 0; } inline IO& operator >> (char & c) { c = nextChar(); return *this; } inline IO& operator >> (char * buf) { if (skipBlanks()) { if (peekChar()) { *(buf++) = peekChar(); while (!isBlank(nextChar())) *(buf++) = peekChar(); } *(buf++) = 0; } return *this; } inline IO& operator >> (string & s) { if (skipBlanks()) { s.clear(); s += peekChar(); while (!isBlank(nextChar())) s += peekChar(); } return *this; } inline IO& operator >> (double & d) { if ((*this) >> tmp) sscanf(tmp, "%lf", &d); return *this; } #define defineInFor(intType) \ inline IO& operator >>(intType & n) { \ if (skipBlanks()) { \ int sign = +1; \ if (peekChar() == '-') { \ sign = -1; \ n = nextChar() - '0'; \ } else \ n = peekChar() - '0'; \ while (!isBlank(nextChar())) { \ n += n + (n << 3) + peekChar() - 48; \ } \ n *= sign; \ } \ return *this; \ } defineInFor(int) defineInFor(unsigned int) defineInFor(long) // fast output routines inline void putChar(char c) { pc(c); } inline IO& operator << (char c) { putChar(c); return *this; } inline IO& operator << (const char * s) { while (*s) putChar(*s++); return *this; } inline IO& operator << (const string & s) { for (int i = 0; i < (int)s.size(); ++i) putChar(s[i]); return *this; } char * toString(double d) { sprintf(tmp, "%lf%c", d, '\0'); return tmp; } inline IO& operator << (double d) { return (*this) << toString(d); } #define defineOutFor(intType) \ inline char * toString(intType n) { \ char * p = (tmp + 30); \ if (n) { \ bool isNeg = 0; \ if (n < 0) isNeg = 1, n = -n; \ while (n) \ *--p = (n % 10) + '0', n /= 10; \ if (isNeg) *--p = '-'; \ } else *--p = '0'; \ return p; \ } \ inline IO& operator << (intType n) { return (*this) << toString(n); } defineOutFor(int) defineOutFor(long) #define endl ('\n') #define cout __io__ #define cin __io__ } __io__; int main() { long m,n; cin >> m >> n; cout << m*n-1; return 0; }