// inputに入力データ全体が入る
function Main(input) {
	// 1行目がinput[0], 2行目がinput[1], …に入る
    input = input.split("\n");
    // 数値の配列を作る
    const numList0 = input[0].split(' ').map(x => parseInt(x, 10));
    const N = numList0[0];
    const L = numList0[1];

    // 初項と末項を求める
    const a = L;
    const l = L + N - 1;

    // 符号が変わっていたら0があるので取り除いても結果は変わらない
    if (a <= 0 && l >= 0) {
        const result1 = N * (a + l) / 2;
        console.log(result1);
    } else {
        // 符号が変わっていない場合は絶対値が小さい方を取り除く
      	if (Math.abs(a) > Math.abs(l)) {
          const l2 = l - 1;
          const result2 = (N - 1) * (a + l2) / 2;
          console.log(result2);
        } else {
        	const a2 = L + 1;
        	const result3 = (N - 1) * (a2 + l) / 2;
        	console.log(result3);
        }
    }
}
 
Main(require("fs").readFileSync("/dev/stdin", "utf8"));