#include <bits/stdc++.h>
using namespace std;
void solve();
int main() {
  ios::sync_with_stdio(0);
  solve();
  return 0;
}
const int KMaxN = 5000000;
long long b2[KMaxN + 1];
void solve() {
  int N, M;
  cin >> N >> M;
  for (int i = 1; i <= N; i++) {
    b2[i] = (long long)i * i;
  }
  long long irr = 0;
  for (int i = 1; i <= N; i++) {
    irr += min(b2[i], (long long)M);
  }
  for (int i = 1; i <= N; i++) {
    int k = lower_bound(b2 + 1, b2 + i + 1, b2[i] - M) - b2;
    k = i - k;
    if (b2[i] <= M) k++;
    irr -= k;
  }
  long long rat = 0;
  for (long long x = -2 * N; x < 0; x++) {
    long long f = -(1 + x * x) / (2 * x);
    long long t = -(M + x * x) / (2 * x);
    if (-x * x - 2 * f * x < 1) f++;
    if (-x * x - 2 * t * x > M) t--;
    if (f <= t) {
      if (f >= 1 && f <= N) rat++;
    }
  }
  cout << 2 * irr + rat << '\n';
}
