# Sum of Large Numbers
//发现这里用不了markdown,只好截图QAQ。。。
——>原文<——
## 题面翻译
## 分析
## 代码核心
for(int i = m; i < n; i ++) {
ans += ((n + (n - i + 1)) * i) / 2 - (((i - 1) * i) / 2) + 1;
ans %= mod;
}
## 完整 $ AC $ 代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn = 200010, mod = 1000000007;
int n, m;
int tem, cnt[maxn] = {0};
int read()
{
int x = 0, w = 1;
char ch = 0;
while (ch < '0' || ch > '9') {
if (ch == '-') w = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9') {
x = x * 10 + (ch - '0');
ch = getchar();
}
return x * w;
}
inline void write(int x)
{
static int sta[35];
int top = 0;
do {
sta[top++] = x % 10, x /= 10;
} while (x);
while (top) putchar(sta[-- top] + 48);
}
signed main()
{
n = read();
m = read();
if(n + 1 == m) {
cout<<1;
return 0;
}
int ans = n + 2;
for(int i = m; i < n; i ++) {
ans += ((n + (n - i + 1)) * i) / 2 - (((i - 1) * i) / 2) + 1;
ans %= mod;
}
write(ans);
return 0;
}