#include <iostream>
#include <vector>
#include <string>
#include <math.h>
#include <algorithm>
#include <set>
#include <iomanip>
#include <stdio.h>
#include <sstream>
#include <bits/stdc++.h>
using namespace std;
long long int mod=1000000007;
set<long long int> hoge;
long long int c(long long int n,long long int r){
  long long int re=1;
  for(int i=0; i<r; i++){
    re*=n-i;
    re%=mod;
  }
  for(int i=0; i<r; i++){
    re/=r-i;
    re%=mod;
  }
  return re;
}
int main(void){
  long long int n;
  cin>>n;
  long long int k;
  cin>>k;
  long long int low;
  long long int high;
  long long int ruiseki_low[n+1];
  ruiseki_low[0]=0;
  long long int ruiseki_high[n+1];
  ruiseki_high[0]=n;
  for(int i=1; i<=n; i++){
    ruiseki_low[i]=ruiseki_low[i-1]+i;
    ruiseki_high[i]=ruiseki_high[i-1]+n-i;
  }
  long long int ans=0;
  for(int i=k; i<=n+1; i++){
    low=ruiseki_low[i-1];
    high=ruiseki_high[i-1];
    ans+=high-low+1;
    ans%=mod;
  }
  cout<<ans<<endl;
}