#include <bits/stdc++.h>
using namespace std;
int d[8][43];
int main() {
  int n, m;
  d[1][1] = 0;
  d[1][2] = 1;
  d[1][3] = 2;
  d[1][4] = 2;
  d[1][5] = 3;
  d[1][6] = 4;
  d[1][7] = 4;
  d[1][8] = 5;
  d[1][9] = 6;
  d[1][10] = 6;
  d[1][11] = 7;
  d[1][12] = 8;
  d[1][13] = 8;
  d[1][14] = 9;
  d[1][15] = 10;
  d[1][16] = 10;
  d[1][17] = 11;
  d[1][18] = 12;
  d[1][19] = 12;
  d[1][20] = 13;
  d[1][21] = 14;
  d[1][22] = 14;
  d[1][23] = 15;
  d[1][24] = 16;
  d[1][25] = 16;
  d[1][26] = 17;
  d[1][27] = 18;
  d[1][28] = 18;
  d[1][29] = 19;
  d[1][30] = 20;
  d[1][31] = 20;
  d[1][32] = 21;
  d[1][33] = 22;
  d[1][34] = 22;
  d[1][35] = 23;
  d[1][36] = 24;
  d[1][37] = 24;
  d[1][38] = 25;
  d[1][39] = 26;
  d[1][40] = 26;
  d[2][2] = 2;
  d[2][3] = 4;
  d[2][4] = 5;
  d[2][5] = 7;
  d[2][6] = 8;
  d[2][7] = 10;
  d[2][8] = 11;
  d[2][9] = 13;
  d[2][10] = 14;
  d[2][11] = 16;
  d[2][12] = 17;
  d[2][13] = 19;
  d[2][14] = 20;
  d[2][15] = 22;
  d[2][16] = 23;
  d[2][17] = 25;
  d[2][18] = 26;
  d[2][19] = 28;
  d[2][20] = 29;
  d[3][3] = 6;
  d[3][4] = 8;
  d[3][5] = 11;
  d[3][6] = 13;
  d[3][7] = 15;
  d[3][8] = 17;
  d[3][9] = 20;
  d[3][10] = 22;
  d[3][11] = 24;
  d[3][12] = 26;
  d[3][13] = 29;
  d[4][4] = 12;
  d[4][5] = 14;
  d[4][6] = 17;
  d[4][7] = 21;
  d[4][8] = 24;
  d[4][9] = 26;
  d[4][10] = 30;
  d[5][5] = 18;
  d[5][6] = 22;
  d[5][7] = 26;
  d[5][8] = 29;
  d[6][6] = 26;
  scanf("%d%d", &n, &m);
  if (n > m) swap(n, m);
  printf("%d", d[n][m]);
  return 0;
}
