#include <iostream>//cout<<right で右揃え
#include <iomanip>//cout<<setw(数字) で空白による桁揃え
#include <string>
#include <vector>
#include <queue>
#include <algorithm>
#include <cstdlib>//abs()で整数絶対値
#include <cmath>//abs()かfabs()で少数絶対値
#include <functional>//sort第三引数greater<型名>()で降順

#define M 1000000007

using namespace std;
using ll = long long int;

int main(){
    int N,K;cin>>N>>K;
    ll sum = 0;
    for(ll i=K;i<=N+1;i++){
        ll min = i * (i - 1) / 2;
        ll max = i * (N - (i - 1) + N) / 2;
        sum += max - (min - 1);
        sum %= M;
    }
    cout << sum << endl;
    return 0;
}