#include <bits/stdc++.h>
using namespace std;
long long min(long long a, long long b) { return a < b ? a : b; }
long long max(long long a, long long b) { return a > b ? a : b; }
long long ans = 0;
void rec(string s, int i, int n, int x) {
  if (i == n) {
    if (x == 0) ans++;
  } else if (s[i] == '+')
    rec(s, i + 1, n, x - 1);
  else if (s[i] == '-')
    rec(s, i + 1, n, x + 1);
  else {
    rec(s, i + 1, n, x + 1);
    rec(s, i + 1, n, x - 1);
  }
}
int main() {
  long long n, m, c = 0;
  ;
  cin >> n >> m;
  while (n > 0 && m > 0) {
    if (n >= m && n >= 2 && m >= 1) {
      n -= 2;
      m -= 1;
      c++;
    } else if (n <= m && n >= 1 && m >= 2) {
      n -= 1;
      m -= 2;
      c++;
    } else
      break;
  }
  cout << c;
  return 0;
}
