'use strict'

const INF = 900719925474099;
function mapint(temp){
    return temp.split(' ').map((v)=>parseInt(v));
}

function lower_bound(d,a,b,e){
    for(var c;1<b-a;)
        d[c=0|(a+b)/2]<e ? a=c : b=c;
    return d[a]<e?b:a
};

const MOD = 1000000007;

function Main(input){
    let temp = input.trim();
    let t2 = mapint(temp);
    let n = t2[0];
    let l = t2[1];

    let f0=false;
    let a,sum=0;
    for(let i=0;i<n;i++){
      a = l + i;
      if(a==0) f0=true;
      sum += a;
    }
    //console.log('sum:',sum,f0);
    if(f0==true) console.log(sum);
    else if(sum<0) console.log( sum - (l + n - 1));
    else console.log( sum - l );
}
//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));

