#include <iostream>

using namespace std;

int main() {
  int N, M;
  
  std::cin >> N >> M;
  
  int tribine[N][M] = {};
  
  for (int red = 0; red < N; red++) {
    for (int kolona = 0; kolona < M; kolona++) {
      
      // ako je prvi ili zadnji red
      if (red == 0 || red == N-1) {
        tribine[red][kolona] = 1;
        continue;
      }
      
      // ako nije ni prvi ni zadnji
      
      // ako je prva ili zadnja kolona
      if (kolona == 0 || kolona == M-1) {
        tribine[red][kolona] = 1;
        continue;
      }
      
      // ako nije ni prva ni zadnja kolona
      
      // ako levo ili iznad nas nema redara
      if (!tribine[red][kolona-1] || !tribine[red-1][kolona]) {
        tribine[red][kolona] = 1;
      }
    }
  }
  
  int redari = 0;
  for (int red = 0; red < N; red++) {
    for (int kolona = 0; kolona < M; kolona++) {
      redari += tribine[red][kolona];
    }
  }
  
  std::cout << redari;
}