#include <bits/stdc++.h>
using namespace std;
template <class T>
void show(T a, int n) {
  for (int i = 0; i < n; ++i) cout << a[i] << ' ';
  cout << endl;
}
template <class T>
void show(T a, int r, int l) {
  for (int i = 0; i < r; ++i) show(a[i], l);
  cout << endl;
}
const int N = 5100000;
const int M = 5000;
const int oo = 10000 * 10000 * 10;
const int A = N + N;
int n, m;
int a[N + N + 100] = {0};
long long sfree(long long n) { return n - (long long)sqrt(n); }
int main() {
  int i, j, cas = 0;
  cin >> n >> m;
  long long ans = 0;
  long long lf, ri;
  for (i = 1; i <= n; ++i) {
    lf = (long long)i * i - m;
    if (lf < 1) lf = 1;
    ri = (long long)i * i - 1;
    long long t = sfree(ri) - sfree(lf - 1);
    ans += t + t;
  }
  for (i = 0; i <= n; ++i) {
    lf = (long long)i * i - m;
    if (lf < 0) lf = 0;
    ri = (long long)i * i - 1;
    lf = (long long)(ceil(sqrt(lf)) + 0.001);
    ri = (long long)(floor(sqrt(ri)) + 0.001);
    a[-i - ri + A]++;
    a[-i - lf + 1 + A]--;
    a[-i + lf + A]++;
    a[-i + ri + 1 + A]--;
  }
  for (i = 1; i < N + N; ++i) {
    a[i] += a[i - 1];
    if (a[i]) ++ans;
  }
  cout << ans << endl;
  return 0;
}
