#include <bits/extc++.h>

#ifndef DUMP
#define DUMP(...) void(0)
#endif

using namespace std;

int main() {
  cin.tie(nullptr)->sync_with_stdio(false);
  int64_t n, m;
  cin >> n >> m;
  if (n % 2 == 0 and m % 2 == 0) {
    cout << "0\n";
    exit(0);
  }
  if (n % 2) swap(n, m);
  if (n % 2 == 0) {
    cout << n / 4 << '\n';
    exit(0);
  }
  assert(n % 2 and m % 2);
  if (n % 4 == 1 and m % 4 == 1) {
    cout << n / 4 + m / 4 << '\n';
    exit(0);
  }
  if (n % 4 == 3) swap(n, m);
  if (n % 4 == 1) {
    assert(m % 4 == 3);
    cout << n / 4 + m / 4 << '\n';
    exit(0);
  }
  assert(n % 4 == 3 and m % 4 == 3);
  if (n > m) swap(n, m);
  assert(n <= m);
  if (n == 3) {
    cout << m / 4 << '\n';
  } else {
    assert(n >= 7);
    cout << (n - 7) / 4 + (m - 7) / 4 + 4 << '\n';
  }
}