#include <bits/stdc++.h>
using namespace std;
long long G(long long a, long long b) {
  if (b == 0) return a;
  return G(b, a % b);
}
int mark[1111][1111], a[2], n, m, ans;
void dfs(int r, int c, int col) {
  if (mark[r][c] > 0) return;
  if (r < 0 || r >= n || c < 0 || c >= m) return;
  mark[r][c] = col;
  a[col - 1]++;
  for (int i = -1; i < 2; i += 2) {
    for (int j = -1; j < 2; j += 2) {
      dfs(r + 2 * i, c + j, 3 - col);
      dfs(r + i, c + 2 * j, 3 - col);
    }
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin >> n >> m;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      a[0] = a[1] = 0;
      if (mark[i][j] == 0) dfs(i, j, 1);
      ans += max(a[0], a[1]);
    }
  }
  cout << ans;
}
