#include <bits/stdc++.h>
using namespace std;
int mmm = 0, x, y;
bool mas[50][50];
void answer(int v, int u, int ans) {
  if (ans < mmm) return;
  if (u >= y) {
    answer(v + 1, 0, ans);
    return;
  }
  if (v >= x) {
    mmm = max(mmm, ans);
    return;
  }
  if (mas[v][u] || v > 0 && mas[v - 1][u] || u > 0 && mas[v][u - 1]) {
    answer(v, u + 1, ans);
    return;
  }
  if (u < y - 1) {
    bool lx = mas[v][u + 1];
    mas[v][u + 1] = true;
    answer(v, u + 1, ans - (lx == false));
    mas[v][u + 1] = lx;
  }
  if (v < x - 1) {
    bool lx = mas[v + 1][u];
    mas[v + 1][u] = true;
    answer(v, u + 1, ans - (lx == false));
    mas[v + 1][u] = lx;
  }
  bool lx = mas[v][u];
  mas[v][u] = true;
  answer(v, u + 1, ans - (lx == false));
  mas[v][u] = lx;
}
int main() {
  cin >> x >> y;
  answer(0, 0, x * y);
  cout << mmm << endl;
  return 0;
}
