#include <bits/stdc++.h>
using namespace std;
const long long inf = 1e9;
const int N = 3e5 + 10;
const long long mod = 1e9 + 7;
const int bits = 20;
const long double pi = 3.14159265358979323846;
void solve() {
  int r, g, h;
  cin >> r >> g;
  int n = sqrt(2 * (r + g));
  for (int i = n - 1; i <= n + 1; i++) {
    if (i * (i + 1) / 2 <= (r + g)) h = i;
  }
  vector<int> dp(r + 1);
  dp[0] = 1;
  for (int i = 1; i <= h; i++) {
    vector<int> dq(r + 1);
    for (int x = 0; x <= r; x++) {
      dq[x] = (dp[x] + dq[x]) % mod;
      if (x - i >= 0) {
        dq[x] = (dq[x] + dp[x - i]) % mod;
      }
    }
    dp = dq;
  }
  int ans = 0;
  for (int i = 0; i <= r; i++) {
    if (2 * (i + g) >= h * (h + 1)) {
      ans = (ans + dp[i]) % mod;
    }
  }
  cout << ans << "\n";
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  ;
  std::cout << std::fixed << std::setprecision(20);
  ;
  long long t = 1;
  while (t--) {
    solve();
  }
}
