#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'; } }