#include <bits/stdc++.h>
using namespace std;
vector<pair<int, int> > f;
int n, m, c1, c2;
int main() {
  cin >> n >> m;
  long long ans = 0;
  for (int b = 1; b <= n; b++) {
    c1 = b - 1;
    if ((long long)b * b >= m)
      c2 = floor(sqrt((long long)b * b - m) - (1e-9)) + 1;
    else
      c2 = 0;
    ans -= (long long)(c1 - c2 + 1) * 2;
    if (c1 >= c2) {
      if (c2 == 0) {
        f.push_back(make_pair(-b, -b));
        ++c2;
      }
      if (c1 >= c2) {
        f.push_back(make_pair(-b + c2, -b + c1));
        f.push_back(make_pair(-b - c2, -b - c1));
      }
    }
    ans += min((long long)b * b, (long long)m) * 2;
  }
  for (int i = 0; i < f.size(); i++)
    if (f[i].first > f[i].second) swap(f[i].first, f[i].second);
  sort(f.begin(), f.end());
  for (int i = 1; i < f.size(); i++) {
    if (f[i].first <= f[i - 1].second) f[i].first = f[i - 1].second + 1;
    if (f[i].second < f[i].first) f[i].second = f[i].first - 1;
  }
  for (int i = 0; i < f.size(); i++)
    ans += (long long)f[i].second - f[i].first + 1;
  cout << ans << endl;
  return 0;
}
