Problem:
Problem E: Graph Making

Problem

どの頂点とも連結でないn個の頂点がある。

各頂点間に無向辺を張っていく。

直径がdになるようにしたとき、最大何本の辺を張ることができるか求めよ。

直径とは、2つの頂点間の最短距離のうち最大のものを表す。

ここで、最短距離は頂点間を移動するために必要な辺の数の最小値である。

多重辺、自己ループは認めない。

Input

n d

1行に2つの整数nとdが空白区切りで与えられる。

Constraints

2 ≤ n ≤ 109

1 ≤ d ≤ n−1

Output

張ることができる最大の辺の数を1行に出力せよ。

Sample Input 1

4 3

Sample Output 1

3

Sample Input 2

5 1

Sample Output 2

10

Sample Input 3

4 2

Sample Output 3

5

Solution in Ruby (judge verdict: Accepted)

n, d = gets.split.map(&:to_i)
if d == 1
    puts n * (n - 1) / 2
else
    puts (n - d + 2) * (n - d + 1) / 2 + d - 3
end