#include <bits/stdc++.h>
using namespace std;
const int INF = 2147483647;
const double PI = 3.141592653589793;
const double eps = 1e-9;
const int C = 10000005;
long long res, s1, s2;
int m1, m2, tab[2 * C + 200], akt, n, m, i;
long long zwroc(long long a) {
  if (a < 0) return 0;
  return a - int(sqrt(a) + eps);
}
int main() {
  scanf("%d %d", &n, &m);
  res = 0;
  for (i = 1; i <= n; i++) {
    s1 = max(i * 1LL * i - m, 0LL);
    s2 = i * 1LL * i - 1;
    m1 = int(ceil(sqrt(s1) - eps) + eps);
    m2 = int(floor(sqrt(s2) + eps) + eps);
    tab[C + (-i - m2)]++;
    tab[C + (-i - m1) + 1]--;
    tab[C + (-i + m1)]++;
    tab[C + (-i + m2) + 1]--;
    res += 2LL * (s2 - s1 - (m2 - m1));
  }
  akt = 0;
  for (i = 0; i < 2 * C; i++) {
    akt += tab[i];
    if (akt > 0) res++;
  }
  cout << res << endl;
  return 0;
}
